求助:关于stm32F103,串口接收数据问题

2019-10-15 19:08发布

有两颗103的ARM,一颗使用USART3,一颗使用UART4;
第一颗的USART3发送数据通过PCB到DP接口,然后走DP线,到另外一个PCB的DP接口,然后进另一颗的UART4接收数据;
在波特率设置为9600或者以上时,出现UART4接收数据偶尔丢字节,通过加计数,发现UART4进入中断的次数和少于USART3发送次数;
(发送数据按自定义协议发送,有包头和Checksum;波特率为9600时,USART3每隔200MS发送一次数据,每次7个字节,发送1000次;UART4收到数据,发现收到数据次数偶尔为998或者999,有时候正常,进中断的次数计数偶尔为6998或者6999,正常应该为:7000。)
修改波特率为2400,发送接收数据正常(测试几W次,暂未发现异常)

麻烦大神帮忙看看会是什么问题

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
fengye00
2019-10-17 12:25
正点原子 发表于 2016-12-17 21:17
这看上去也没什么问题哦
用外部ttl串口模块,监控下传输数据线上的数据吧,看看是否干扰出错了

找到问题了,是因为有个外部中断一直在发生导致的; 现在需要解决,但是外部中断的优先级是要高于串口的,而且收到中断,必须在中断服务函数中进行处理,需要几ms的时间,不能收下来再去主环处理。请问原子大大,有什么好的处理方式吗?

一周热门 更多>