请教如何屏蔽SCI中断

请教如何屏蔽SCI中断,第1张

出现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再初化一下,是可以再通讯的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11351523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存