关于LM3S800UART使用了FIFO后的接收超时中断

2019-03-24 10:41发布

各位坛友,我使用UART时,设置了FIFO接收中断深度,同时使能接收超时中断。请问,这个接收超时中断是什么情况下触发的?手册上有这样一句话,“当接收FIFO不为空时接收超时中断有效”。我做了一块modbus主机板,没接从机的时候,也就没有接收,这个时候没有接收超时中断;这跟那句话是对得上的,也是合理的。后来,调试好了,准备提交测试了,程序烧到另一块板上,诡异的事情出现了,没接从机,那个芯片却一直进入接收超时中断。。 因为接收中断RX和接收超时中断RT都是进入到接收处理函数里的,在接收处理函数里,我会清零通信超时计数器的;如果没有接从机也就是没有通信的时候,处理器一直有触发接收超时中断,在接收处理函数里,通信超时计数器一直清零,那通信超时就无法判断到了。 请问坛友们,有木有遇到过这么纠结的情况,如何解决呢?   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
暖暖美少
2019-03-25 05:54
朋友,你是对的。因为硬件上485芯片RE脚和DE脚接在一起了,我以为就不会自发自收了,所以发完切换为收时,我没有去清接收FIFO,而用示波器监测时发现虽然没有接从机就应该没有接收的,但接收引脚却测到有一个负脉冲,原来是DE和RE接一起、切换为收时拉低DE引出来的。但其实还是解释不通的,因为这个时候只是打开接收三态门,总线上应该是没有信号的,我发的并不会锁存在总线上。。但不管如何,我就想到要去清除接收FIFO了,然后不接通信也不会触发进入到接收超时中断了。。

一周热门 更多>

相关问题

    相关文章