嵌入式开发者社区

标题: 串口问题 [打印本页]

作者: 飞翔    时间: 2017-9-14 11:29
标题: 串口问题
请教大家一个问题,有没有哪位朋友遇到过,先谢过!
串口相关代码,借鉴了“\tms320c6748\demo\SYSBIOS\Application\UART2_INT”的例程。
把串口设置为fifo模式,深度为14个字节,串口中断为使能“UART_INT_LINE_STAT|UART_INT_TX_EMPTY|UART_INT_RXDATA_CTI”,
用串口助手测试,每次收到数据就发送11个字符,如果关闭发送功能,串口接收正常,不丢数据;如果开着发送功能,接收的频度很快的话,数据过一会儿就停止发送了,串口也停止接收了(确切的说是没有接收中断了),查看串口的寄存器,发现IIR的IPEND为0,也就是说有中断没有处理,但是却没有触发DSP的中断和调用中断函数,LSR的OE位为1,怀疑是发送的数据太多过载了,所以我把程序改为每次查询到发送FIFO为空才发送数据,每次发送14个字节(FIFO能装16个),可是问题还是出现,不知道什么原因导致的LSR的OE置1和为什么不进入中断(UART_INT_LINE_STAT是使能的)。

作者: 飞翔    时间: 2017-9-14 14:16
可能找到原因了,串口中断中如果有多个中断事件,读完一次IIR寄存器,处理完后需要在检查一下IPEND位,否则中断函数退出后该中断就被屏蔽了,因为有事件没处理。
作者: human    时间: 2017-9-15 12:03
飞翔 发表于 2017-9-14 14:16
可能找到原因了,串口中断中如果有多个中断事件,读完一次IIR寄存器,处理完后需要在检查一下IPEND位,否则 ...

请问问题解决了没?
作者: 飞翔    时间: 2018-1-18 10:26
human 发表于 2017-9-15 12:03
请问问题解决了没?

不好意思,很久没登录,解决了




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4