TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F2802的scia串口接收,重启后,不能接收数据

scia串口接收功能,在仿真状态及退出仿真后,一直正常接收串口数据,但只要重启,就不能就收数据了,发送不受影响,请问各位大师,看是否遇到过这种情况,谢谢

Seven Han:

你好,那一段时间后再复位芯片试试看接受是否正常,会不会串口接的设备在重启的瞬间向2802发了数据,影响了接收。

scia串口接收功能,在仿真状态及退出仿真后,一直正常接收串口数据,但只要重启,就不能就收数据了,发送不受影响,请问各位大师,看是否遇到过这种情况,谢谢

yi chen14:

回复 Seven Han:

另一个设备查询命令一直在发,但是TI的2802只要重新烧写,不断电,都一直能接收,只要重新启动,另一个设备查询命令还在发,2802就是收不到数据,还有如果另一设备断电,2802不断电,在上电,2802也是接收不到数据,感觉缓冲区或标志上的问题

scia串口接收功能,在仿真状态及退出仿真后,一直正常接收串口数据,但只要重启,就不能就收数据了,发送不受影响,请问各位大师,看是否遇到过这种情况,谢谢

yi chen14:

回复 Seven Han:

看看我的配置 SciaRegs.SCIFFTX.all= 0xE040; //SCIA发送寄存器配置:发送缓冲区复位 + 发送缓冲区增强被使能 + 重新启动发送操作 + 清除TXFFINT标志 SciaRegs.SCIFFRX.all= 0x206b; //SCIA接收寄存器配置:接收缓冲区复位 + 清除TXFFINT标志 + RX FIFO接收缓冲区中断使能 +接收11个字节 SciaRegs.SCIFFRX.bit.RXFFST = 0; //FIFO缓冲区为空(做个试验,这个位置写入数据,不影响接收,以后要注意) SciaRegs.SCIFFRX.bit.RXFFIL = 11; //FIFO缓冲区一次接收11个字节,最多16个 SciaRegs.SCIFFCT.all= 0x0; //SCIA缓冲区控制寄存器 SciaRegs.SCICCR.all = 0x0007; //通讯控制寄存器(1 stop bit、No loopback、No parity、8 char bits,异步模式,空闲线协议) SciaRegs.SCICTL1.all = 0x0003; //SCI控制寄存器1:发送使能 + 接收到的数据存储在SCIRXEMU和SCIRXBUF中 SciaRegs.SCICTL2.all = 0x0003; //SCI控制寄存器2:使能RXRDY/BRKDT中断 + 使能TXRDY中断 SciaRegs.SCICTL2.bit.TXINTENA = 1; //使能RXRDY/BRKDT中断 SciaRegs.SCICTL2.bit.RXBKINTENA = 1; //使能TXRDY中断 SciaRegs.SCIHBAUD = 0x0000; //波特率控制寄存器:BRR = 15M/(9600*8)-1 = 194(0x00c2)(注意:所谓9600并不是真的9600,而是接近值) SciaRegs.SCILBAUD = 0x00c2; //115200=0x000e;9600=0x00c2; SciaRegs.SCICTL1.all = 0x0023; //SCI控制寄存器1:SW复位 + 发送使能 + 接收到的数据存储在SCIRXEMU和SCIRXBUF中 SciaRegs.SCICTL1.bit.RXENA = 1; //接收使能 SciaRegs.SCICTL1.bit.TXENA = 1; //发送使能

scia串口接收功能,在仿真状态及退出仿真后,一直正常接收串口数据,但只要重启,就不能就收数据了,发送不受影响,请问各位大师,看是否遇到过这种情况,谢谢

yi chen14:

回复 Seven Han:

看看我的配置    

 SciaRegs.SCIFFTX.all= 0xE040;

SciaRegs.SCIFFRX.all= 0x206b;

SciaRegs.SCIFFRX.bit.RXFFST = 0;

SciaRegs.SCIFFRX.bit.RXFFIL = 11;

SciaRegs.SCIFFCT.all= 0x0;

SciaRegs.SCICCR.all = 0x0007;

SciaRegs.SCICTL1.all = 0x0003;

SciaRegs.SCICTL2.all = 0x0003;

SciaRegs.SCICTL2.bit.TXINTENA = 1;

SciaRegs.SCICTL2.bit.RXBKINTENA = 1;

SciaRegs.SCIHBAUD    = 0x0000;

SciaRegs.SCILBAUD    = 0x00c2;

 SciaRegs.SCICTL1.all = 0x0023; 

SciaRegs.SCICTL1.bit.RXENA        = 1;

SciaRegs.SCICTL1.bit.TXENA        = 1;

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F2802的scia串口接收,重启后,不能接收数据
分享到: 更多 (0)