[STM32F1] 请教电脑接收端不打开串口,STM32不断发送数据会丢失一个字节的原因!

[复制链接]
1529|1
 楼主| sxslyy 发表于 2013-11-22 21:36 | 显示全部楼层 |阅读模式
现象是这样的,STM32不断发送数据如:01,02,03,04,。。。。。,如这时串口助手不打开串口,过一会再打开,就会出现丢失一个字节的情况!如:01,02,03,这时关闭电脑的串口,再打开,再接收的数据就会是05,06,07。。。。 04这个字节丢了!想知道原因!单步跟程序:
while(1)
{
USART_SendData(USART2, i++);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET){}
}

USART_SendData(USART2, i++);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET){}
当关闭电脑的串口这两句还在不停执行!我觉着当这样总是后一个字节进入TDR,再被后一个字节覆盖掉!应丢失很多字节!为什么再打开串口时!总是只丢了一个字节!如果说这些字节是被计算机串口的接收缓存给缓存了!那有为什么会丢一个!而不是全都缓存不损失!这个丢失的字节是在什么过程中被后一个字节覆盖丢失了呢!
 楼主| sxslyy 发表于 2013-11-25 21:31 | 显示全部楼层
问题找到了:我使用的是PL2303转的串口,可能PL2303线有缓存的功能!不能这条线,直接用正常串口就对了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

31

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部