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

2019-03-24 10:41发布

各位坛友,我使用UART时,设置了FIFO接收中断深度,同时使能接收超时中断。请问,这个接收超时中断是什么情况下触发的?手册上有这样一句话,“当接收FIFO不为空时接收超时中断有效”。我做了一块modbus主机板,没接从机的时候,也就没有接收,这个时候没有接收超时中断;这跟那句话是对得上的,也是合理的。后来,调试好了,准备提交测试了,程序烧到另一块板上,诡异的事情出现了,没接从机,那个芯片却一直进入接收超时中断。。 因为接收中断RX和接收超时中断RT都是进入到接收处理函数里的,在接收处理函数里,我会清零通信超时计数器的;如果没有接从机也就是没有通信的时候,处理器一直有触发接收超时中断,在接收处理函数里,通信超时计数器一直清零,那通信超时就无法判断到了。 请问坛友们,有木有遇到过这么纠结的情况,如何解决呢?   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
brucege888
1楼-- · 2019-03-24 20:55

应该是,当FIFO里面有数据没有读出的时候,才能触发超时中断,如果FIFO空不可能发生超时中断。产生超时中断后,除了清楚中断标志位,还应该读出FIFO里面的全部数据,否则还会触发超时中断的。。

暖暖美少
2楼-- · 2019-03-24 21:06
< :TI_MSP430_内容页_SA7 --> 相当的痛苦,为什么它没有接收也触发接收超时中断呢,这样叫我好为难!!如何是好?
brucege888
3楼-- · 2019-03-25 00:13
 精彩回答 2  元偷偷看……
永远的不知
4楼-- · 2019-03-25 03:51
调试判断一下中断类型,建议使用UART时先清空FIFO。
暖暖美少
5楼-- · 2019-03-25 05:54
朋友,你是对的。因为硬件上485芯片RE脚和DE脚接在一起了,我以为就不会自发自收了,所以发完切换为收时,我没有去清接收FIFO,而用示波器监测时发现虽然没有接从机就应该没有接收的,但接收引脚却测到有一个负脉冲,原来是DE和RE接一起、切换为收时拉低DE引出来的。但其实还是解释不通的,因为这个时候只是打开接收三态门,总线上应该是没有信号的,我发的并不会锁存在总线上。。但不管如何,我就想到要去清除接收FIFO了,然后不接通信也不会触发进入到接收超时中断了。。
QIHAO74
6楼-- · 2019-03-25 07:24
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章