OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3542|回复: 4

双串口通信其中一个串口接收数据总是丢掉第一个数据,为什么?

[复制链接]

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-12-16
在线时间
17 小时
发表于 2018-7-16 11:48:22 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 Quantum 于 2018-7-16 11:48 编辑

stm32f103的双串口通信测试

在uart1和uart2分别正常运行的前提下,整合到一块的,量串口配置及收发程序基本相同,波特率相同,中断优先级不同,printf()只用了usart1的。结果出现了下面的情况:
图左串口:助手显示uart2接收的来自uart1的数据“你好”,      显示正常
图右串口:助手显示uart1接收的来自uart2的数据“5666666”,显示时常丢掉第一个数据,显示“666666”,少数情况正常显示。换为其他字符串也是同样的现象。
(uart1接收uart1,uart2接收uart2又分别测试了一遍,没有问题)

综上,问题可能会出在哪里?求解,谢谢~


第一个数据丢失

第一个数据丢失






最佳答案

查看完整内容[请看2#楼]

发送之前加判断 USART_GetFlagStatus(USARTx, USART_FLAG_TC); 再试试
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-7-16 11:48:23 | 显示全部楼层
发送之前加判断
USART_GetFlagStatus(USARTx, USART_FLAG_TC);
再试试
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-12-16
在线时间
17 小时
 楼主| 发表于 2018-7-16 21:46:22 | 显示全部楼层
森海有眼泉 发表于 2018-7-16 17:04
发送之前加判断
USART_GetFlagStatus(USARTx, USART_FLAG_TC);
再试试

试过了,正确无误,谢谢你~   能解释下原因吗 ?
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-7-17 09:35:56 | 显示全部楼层
Quantum 发表于 2018-7-16 21:46
试过了,正确无误,谢谢你~   能解释下原因吗 ?

据说.是ST的bug
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-12-16
在线时间
17 小时
 楼主| 发表于 2018-7-17 09:47:31 | 显示全部楼层

OK,了解了,也听说是由bug。再次感谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 05:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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