使用串口接收数据一直出现溢出中断,导致固定顺序的数据接收之后不准确

2019-08-18 19:24发布

我要接收传感器处理好的数据   数据时按着顺序发送的   不知道为什么每次接收中断的产生都伴随着溢出中断的出现   我调试发现USART->SR  =0XF8,意味着RXNE和ORE都置1了,
    我最开始认为  我的中断程序量太庞大   接着我把  数据处理放到我的MAIN中   中断程序里就几条语句   还是发现有溢出  而且每次都是出现的溢出中断
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
fanfan
1楼-- · 2019-08-19 21:04
yklstudent 发表于 2017-5-21 20:54
中断中使用printf,楼主真是人才

我不用 也是不行啊  一直有中断溢出
fanfan
2楼-- · 2019-08-19 22:52
so 发表于 2017-5-21 15:32
缓存加大也不行吗

你的意思是指  我定义的接受数据的数组吗??还是说硬件里的配置
cromarti
3楼-- · 2019-08-20 02:47
最好是定义一个全局数组和一个标志变量,中断里面只负责把串口接受到的数据存放到数组里,存满了通过标志位通知主程序进行打印处理。再就是要是调试的时候要是外设还在不停的发送的话估计也会持续溢出
fanfan
4楼-- · 2019-08-20 04:51
 精彩回答 2  元偷偷看……
fanfan
5楼-- · 2019-08-20 07:47
fanfan 发表于 2017-5-22 17:09
外设一直处于不挺的发送,波特率为9600, 一般9600的波特率 发送,我中断程序只要不是特别庞大,应该都没 ...

你的意思是让我把接收到的数据放到主函数里面去处理,我这样做了,还是溢出
cromarti
6楼-- · 2019-08-20 11:13
fanfan 发表于 2017-5-22 17:09
外设一直处于不挺的发送,波特率为9600, 一般9600的波特率 发送,我中断程序只要不是特别庞大,应该都没 ...

我是说调试的时候溢出的可能原因是因为外设不停的发送但是你接受到第一个字节的时候已经发送了很多字节。可以在调试模式下用串口调试助手手动一个个字节发送再在中断里面看看是不是还是溢出

一周热门 更多>