打印
[MCU]

串口中断总是被打断

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

使用特权

评论回复

相关帖子

沙发
zyf部长| | 2020-2-22 22:33 | 只看该作者
进一次中断接收一个字符.这样也太频繁了吧,不可以将串口做成DMA传输吗?

使用特权

评论回复
板凳
lium| | 2020-2-22 22:35 | 只看该作者

进一次中断接收一个字符效率太低了。

使用特权

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

使用特权

评论回复
5
huwr| | 2020-2-22 22:41 | 只看该作者

具体要怎么做?

使用特权

评论回复
6
tian111| | 2020-2-22 22:43 | 只看该作者
c6747 串口传输控制寄存器FCR中有一位是使能DMA的

使用特权

评论回复
7
zwll| | 2020-2-22 22:45 | 只看该作者

配置高的优先级。

使用特权

评论回复
8
pengf| | 2020-2-22 22:46 | 只看该作者
串口中断高于定时中断的优先级

使用特权

评论回复
9
xxrs| | 2020-2-22 22:49 | 只看该作者
不用在定时器写太多的代码

使用特权

评论回复
10
yinxiangh| | 2020-2-22 22:56 | 只看该作者
使用外部的存储区。

使用特权

评论回复
11
morrisk| | 2020-2-22 22:59 | 只看该作者

这个DSP应该有fifo吧。

使用特权

评论回复
12
lium| | 2020-2-22 23:01 | 只看该作者

优先级高了肯定先相应。

使用特权

评论回复
13
zhuww| | 2020-2-22 23:03 | 只看该作者
放在main函数执行。

使用特权

评论回复
14
heweibig|  楼主 | 2020-2-22 23:06 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

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

本版积分规则

869

主题

13089

帖子

7

粉丝