2812串口SCI

2019-08-02 21:10发布

2812,使用SCI FIFO中断模式接收数据,波特率153.6K,数据包每包含16个8位数,每接收到一个数据即产生一个中断,也就是每一个数据包会产生16个中断。上位机最快每隔20ms左右发一包数据。
平时大多数时间下使用都是正常的。
但是诡异的是,不时会出现表现为串口无响应的故障。接上仿真器检查,发现确实有在数据线上有数据的情况下,DSP完全不响应中断。检查SCI寄存器,发现SCIRXST寄存器被置0xB2,也就是RX ERROR位,BRKDT位,FE位被置1,通过向SCICTL1寄存器的SW reset复位位写0,可以使串口重新响应中断,但是很快又会出现不响应中断的情况。同事SCIRXST被写0XB2
想让大家帮忙分析的是,这种情况有可能是因为什么导致的?SCIRXST被置为0xB2后,串口会被挂起?
查datasheet ,上面说BRKDT是SCI break标志位,被置为的原因是串口在丢失一个停止位后,连续检测到了十位的低电平
并且貌似在连接仿真器用断点进行调试时,这种现象发生的尤其频繁。我不能肯定的是上位机或者我自己的2812在使用断点调试时,打乱了串口的传输,造成SCIRXST寄存器报错呢,还是其他的原因?
不知道有人遇到类似问题没?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。