打印

uart中断总是被定时中断打断

[复制链接]
1031|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CaLipton|  楼主 | 2018-1-30 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C6747程序中有一个10ms的定时中断,定时中断中放置有大量计算,另外用UART串口中断接收110~210个字符(进一次中断接收一个字符),定时中断的优先级高于串口中断。在运行过程中,发现串口中断接收数据时,串口中断总是被打断,导致数据丢失,基本不可用。而定时中断里的算法又不可以移动的主函数中,请问该如何解决这个问题

相关帖子

沙发
Rospiers| | 2018-1-30 16:39 | 只看该作者
进一次中断接收一个字符.这样也太频繁了吧,不可以将串口做成DMA传输吗?

使用特权

评论回复
板凳
Lewisnx| | 2018-1-30 16:54 | 只看该作者
进一次中断接收一个字符效率太低了。

使用特权

评论回复
地板
CCompton| | 2018-1-30 17:05 | 只看该作者
可以修改下通信协议,设置一个结束符,接收缓存设置在一点,进中断后全部接收,只到收到结束符才停止,当然也要做一个超时,在比如50ms的时间内没有收到结束符,也停止接收

使用特权

评论回复
5
Richardd| | 2018-1-30 17:19 | 只看该作者
具体要怎么做?

使用特权

评论回复
6
Mattheww| | 2018-1-30 17:31 | 只看该作者
c6747 串口传输控制寄存器FCR中有一位是使能DMA的

使用特权

评论回复
7
fentianyou| | 2018-2-1 21:49 | 只看该作者
配置高的优先级。

使用特权

评论回复
8
xiaoyaodz| | 2018-2-1 21:49 | 只看该作者
串口中断高于定时中断的优先级

使用特权

评论回复
9
febgxu| | 2018-2-1 21:50 | 只看该作者
不用在定时器写太多的代码

使用特权

评论回复
10
pixhw| | 2018-2-1 21:50 | 只看该作者
使用外部的存储区。

使用特权

评论回复
11
fentianyou| | 2018-2-1 21:51 | 只看该作者
这个DSP应该有fifo吧。

使用特权

评论回复
12
xiaoyaodz| | 2018-2-1 21:51 | 只看该作者
优先级高了肯定先相应。

使用特权

评论回复
13
febgxu| | 2018-2-1 21:51 | 只看该作者
放在main函数执行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

126

主题

369

帖子

0

粉丝