串口问题 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3533|回复: 3

[未解决] 串口问题

[复制链接]

4

主题

7

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
发表于 2017-9-14 11:29:07 | 显示全部楼层 |阅读模式
请教大家一个问题,有没有哪位朋友遇到过,先谢过!
串口相关代码,借鉴了“\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是使能的)。
回复

使用道具 举报

4

主题

7

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
 楼主| 发表于 2017-9-14 14:16:32 | 显示全部楼层
可能找到原因了,串口中断中如果有多个中断事件,读完一次IIR寄存器,处理完后需要在检查一下IPEND位,否则中断函数退出后该中断就被屏蔽了,因为有事件没处理。

点评

请问问题解决了没?  详情 回复 发表于 2017-9-15 12:03
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
发表于 2017-9-15 12:03:15 | 显示全部楼层
飞翔 发表于 2017-9-14 14:16
可能找到原因了,串口中断中如果有多个中断事件,读完一次IIR寄存器,处理完后需要在检查一下IPEND位,否则 ...

请问问题解决了没?
回复 支持 反对

使用道具 举报

4

主题

7

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
 楼主| 发表于 2018-1-18 10:26:55 | 显示全部楼层
human 发表于 2017-9-15 12:03
请问问题解决了没?

不好意思,很久没登录,解决了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-19 13:57 , Processed in 0.037464 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表