STM32
登录
直播中
迷你洼哇
11年用户
553经验值
私信
关注
[问答]
为什么stm32f205串口上电后发送字符串的第一个字节会丢失
开启该帖子的消息推送
STM32F205
字符串
上电
为什么
STM32
f205串口上电后发送字符串的第一个字节会丢失?怎样去解决这个问题呢?
回帖
(1)
王君凯
2021-12-9 10:53:40
使用stm32f205调试串口通讯时,发现一个问题,上电后串口发送字符串的第一个字节会丢失,发送测试数据hello,接收端收到的数据为:ello,第一个字符丢失。用示波器抓取波形,发现第一个数据的波型也是丢失的。
出现问题的代码如下:
while(*pStr != 0){ USART_SendData(USARTx, *pStr++); while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);}
原因:
1.通过DEBUG查看,在执行USART1_init();串口初始化完成后:TXE,TC是置1的。
2.RM0033中有一段描述,
两者的区别在于:往USART_DR中写数据的时候TXE直接被清零。TC清零则需要先读取USART_SR,然后写USART_DR。
在出现错误的代码执行之前加一句:
USART_GetFlagStatus(USART1, USART_FLAG_TC); 就不存在错误了。
当然,直接清零也可以:USART_ClearFlag( USART1, USART_FLAG_TC );
或者用
USART_FLAG_TXE
标志来判断。
使用stm32f205调试串口通讯时,发现一个问题,上电后串口发送字符串的第一个字节会丢失,发送测试数据hello,接收端收到的数据为:ello,第一个字符丢失。用示波器抓取波形,发现第一个数据的波型也是丢失的。
出现问题的代码如下:
while(*pStr != 0){ USART_SendData(USARTx, *pStr++); while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);}
原因:
1.通过DEBUG查看,在执行USART1_init();串口初始化完成后:TXE,TC是置1的。
2.RM0033中有一段描述,
两者的区别在于:往USART_DR中写数据的时候TXE直接被清零。TC清零则需要先读取USART_SR,然后写USART_DR。
在出现错误的代码执行之前加一句:
USART_GetFlagStatus(USART1, USART_FLAG_TC); 就不存在错误了。
当然,直接清零也可以:USART_ClearFlag( USART1, USART_FLAG_TC );
或者用
USART_FLAG_TXE
标志来判断。
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32F205
字符串
上电
stm32
串口
发送
字符串
,
第一个字符
丢失
如何解决?
2021-12-09
2136
怎样去解决
STM32
自带库函数
串口
收发数据时
第一个字符
丢失
的问题呢
2021-12-08
934
如何输出连接的
一
组
字符串
中的
第一个字符串
?
2021-04-19
3963
Stm32
串口
发送
数据无法接收到
第一个字节
如何解决?
2021-12-09
2407
STM32
串口
接收
字符串
问题
2017-10-12
15837
STM32
485
串口
只能
发送
第一个字符
2019-01-30
7790
删除
字符串
2019-08-30
4105
串口
接收
字符串
2016-09-03
12091
STM8L105 DMA方式
发送
串口
数据偶尔丢
第一个字节
是为什么?
2024-05-06
148
单片机
串口
接收从
串口
助手发过来的多
个字节
,只有
第一个字节
是接收正常
2017-01-04
20048
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分