欢迎分享,转载请注明来源:内存溢出
出现OE是因为在RXBUF的数据被读出之前,又有新的接收数据,使原来的数据丢失。所以处理的关键是接收中断要立即读BUF,以准备接收新的数据。如果怀疑是SCIA中断优先级高而使SCIB的中断不能进入,可以不使用SCI的中断,而采取定时器中断的方法(定时器中断周期要小于SCI一个字节的周期),在定时器中断程序内查询SCIA和SCIB的RXRDY的状态进行处理,这样用一个定时器中断取代两个SCI中断,相当于SCIA和SCIB的优先级相同了。一般工程中都要用到定时器中断,所以我一般不开SCI的中断,而是在定时器中断里处理SCI数据,这样也减少了中断的数量。我已经搞定了,原理是:在程序中做个 定时检测if(SciaRegs.SCIRXST.bit.RXERR==1)出错后先把SciaRegs.SCICTL1.bit.SWRESET = 0再初化一下,是可以再通讯的
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
新北洋打印机如何升级成通用版
上一篇
2023-05-15
教育类微信小程序怎么开发
下一篇
2023-05-15
评论列表(0条)