DSP_TMS32F2812的串口操作
void scia_fifo_init(int ibaud) { SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK, // Disable RX ERR, SLEEP, TXWAKE SciaRegs.SCICTL2.bit.TXINTENA =1; SciaRegs.SCICTL2.bit.RXBKINTENA =1; if(ibaud==9600) { SciaRegs.SCIHBAUD =0x0001;//9600 SciaRegs.SCILBAUD =0x00e7; } if(ibaud==19200) { SciaRegs.SCIHBAUD =0x0000; SciaRegs.SCILBAUD =0x00f3; } if(ibaud==38400) { SciaRegs.SCIHBAUD =0x0000; SciaRegs.SCILBAUD =0x0079; } SciaRegs.SCICCR.bit.LOOPBKENA =0; // Enable loop back SciaRegs.SCIFFTX.all=0xC028; SciaRegs.SCIFFRX.all=0x0021;// SciaRegs.SCIFFCT.all=0x00; SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1; SciaRegs.SCIFFRX.bit.RXFIFORESET=1; } unsigned char r232data[3]={0,0,0}; int int232cnt=0; void scia_xmit(int a) { while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {} SciaRegs.SCITXBUF=a; } interrupt void sciaRxFifoIsr(void) { unsigned short ReceivedChar=SciaRegs.SCIRXBUF.all; // Read data // r232data[int232cnt%3]=ReceivedChar; int232cnt++; if((r232data[0]==0X42)&&(r232data[1]==0X42)&&(int232cnt%3==0)) { //lslData = *(unsigned short*)(0x80000+0xb);//bit0 输出1的值,bit1 输出2的值 EALLOW; GpioMuxRegs.GPEMUX.bit.XNMI_XINT13_GPIOE2 = 0; // IO 输入 拉低 GpioMuxRegs.GPEDIR.bit.GPIOE2 = 1; //B6输出 GpioDataRegs.GPEDAT.bit.GPIOE2 = (r232data[2]&0x2)>>1; // GpioMuxRegs.GPBQUAL.all=0x0000; // Input qualifier disabled EDIS; // EALLOW; GpioMuxRegs.GPBMUX.bit.T3PWM_GPIOB6=0; // IO 输入 拉低 GpioMuxRegs.GPBDIR.bit.GPIOB6=1; //E2输出 GpioDataRegs.GPBDAT.bit.GPIOB6 = r232data[2]&0x1; // GpioMuxRegs.GPBQUAL.all=0x0000; // Input qualifier disabled EDIS; scia_xmit(0x41); scia_xmit(0x41); } SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag SciaRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ack } void main(void) { int ch=0; InitSysCtrl();//设置外部时钟和系统时钟 /////////for sci-b//////////////////// EALLOW; GpioMuxRegs.GPFMUX.all=0x0030; // Select GPIOs to be Scia pins // Port F MUX - x000 0000 0011 0000 // GpioMuxRegs.GPGMUX.all=0x0030; // Select GPIOs to be Scib pins // Port G MUX - x000 0000 0011 0000 EDIS; /////////////////////////////////// DINT; InitGpio(); // 2812原配,未改动 InitPieCtrl(); // Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; // This is needed to write to EALLOW protected registers // PieVectTable.TINT0 = &cpu_timer0_isr; PieVectTable.RXAINT = &sciaRxFifoIsr; EDIS; scia_fifo_init(9600); ///* PieCtrlRegs.PIECRTL.bit.ENPIE = 1; // Enable the PIE block PieCtrlRegs.PIEIER9.bit.INTx1=1; // PIE Group 9, INT1 // PieCtrlRegs.PIEIER9.bit.INTx2=1; // PIE Group 9, INT2 // PieCtrlRegs.PIEIER9.bit.INTx3=1; // PIE Group 9, INT3 // PieCtrlRegs.PIEIER9.bit.INTx4=1; // PIE Group 9, INT4 IER |= 0x100; // Enable CPU INT EINT; ERTM; //*/ // 将中断处理函数和InitFlash函数拷贝到RAM中运行,FLASH中运行时MemCopy和InitFlash必须有效 MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash(); // 对外部器件初始化必需放在InitFlash后 // 初始化timer0 // InitCpuTimers(); // ConfigCpuTimer(&CpuTimer0, 150, 0xffffffff); // 初始化 while (1) { ; } }
DSP_TMS32F2812的串口操作的更多相关文章
- C# 串口操作系列(3) -- 协议篇,二进制协议数据解析
原文地址:http://blog.csdn.net/wuyazhe/article/details/5627253 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要 ...
- C# 串口操作 ---- 系列文章
C# 串口操作系列(5)--通讯库雏形 通讯库雏形的建立. 串口通讯介绍的高级篇,介绍更高级的抽象,为扩展为通用的客户端通讯库做铺垫,扩展性的考虑,能支持任意类型的流设备. ... 2010-08-0 ...
- c#实现串口操作 SerialPort
命名空间:using System.IO.Ports;该类提供了同步 I/O 和事件驱动的 I/O.对管脚和中断状态的访问以及对串行驱动程序属性的访问. 操作类声明: SerialPort sp = ...
- C# 串口操作系列(5)--通讯库雏形
C# 串口操作系列(5)--通讯库雏形 标签: 通讯c#数据分析byteclassstring 2010-08-09 00:07 21378人阅读 评论(73) 收藏 举报 分类: 通讯类库设计(4 ...
- C# 串口操作系列(4) -- 协议篇,文本协议数据解析
C# 串口操作系列(4) -- 协议篇,文本协议数据解析 标签: c#uiobjectstringbyte 2010-06-09 01:50 19739人阅读 评论(26) 收藏 举报 分类: 通讯 ...
- 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子. 标签: c#objectnewlineexceptionbytestring 2010-05-17 01:10 117109人阅读 ...
- V-rep学习笔记:串口操作
VREP Regular API提供了串口操作的相关函数,可以对串口进行打开.关闭和读写: 下面使用一款淘宝上常见的AHRS(Attitude and heading reference system ...
- Linux下串口操作之数据拼接
串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器 ...
- 【C#】串口操作实用类
做工业通 信有很长时间了,特别是串口(232/485),有VB/VC/C各种版本的串口操作代码,这些代码也经过了多年的现场考验,应该说是比较健壮的代码,但 是目前却没有C#相对成熟的串口操作代码,最近 ...
随机推荐
- 100、RESTful API
本篇导航: RESTful RESTful API设计 基于django实现 基于Django Rest Framework框架实现 一.RESTful REST与技术无关,代表的是一种软件架构风格, ...
- Laravel 5.4.36 session 没有保存成功问题
session使用注意点 工作中使用的是session默认的文件缓存 在使用过发现 session()->put("key","values") 发 ...
- Jedis/JedisPool和Redis数据类型与特性
1.介绍Jedis Jedis 是 Redis 的 java 版本客户端,使用Jedis可以连接 Redis的数据库,Jedis连接方式有三种Jedis/JedisPool 连接.ShardedJed ...
- Perf工具
前段时间Linux下用nmon监控程序的运行,发现CPU的使用率很高,系统态Sys的比例很高.程序的速度不是很快,怀疑和上面的原因有关. 分别使用perf record,perf report和top ...
- java中的各种Queue
java中的各种并发Queue可以归为以下的几种: ConcurrentLinkedQueue: 一个由链表结构组成的非阻塞队列 ArrayBlockingQueue :一个由数组结构组成的有界阻塞队 ...
- BZOJ 2083: [Poi2010]Intelligence test [vector+二分]
2083: [Poi2010]Intelligence test Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 469 Solved: 227[Su ...
- Windows Server 2016-FSMO操作主机角色介绍
FSMO五个操作主机角色 1.林范围操作主机角色(两种): 架构主机角色:Schema Master 域命名主机角色:Domain Naming Master 2.域范围操作主机角色(三种): 域范围 ...
- 网络编程之socketserver
网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...
- MySQL复制同一个服务器的表结构和表数据
例如,现在服务器上有数据库 dbx 和 dby,dbx中有很多表,要把dbx中的表全部复制到dby,如下操作: 首先: use dby; [复制表结构] CREATE TABLE user LIKE ...
- 对 url 中含有的中文进行转码操作
对 url 中含有的中文进行转码操作 一般情况下,将带有中文的 url 拷贝到开发工具,开发工具都会有相应的转码(自动转码), 现在大部分的浏览器也可以对含有中文的 url 进行转码(自动转码) 情景 ...