STM32
登录
直播中
张亮
7年用户
1275经验值
私信
关注
[问答]
怎样去解决STM32自带库函数串口收发数据时第一个字符丢失的问题呢
开启该帖子的消息推送
STM32
串口
字符
怎样去解决
STM32
自带库函数串口收发数据时第一个字符丢失的问题呢?
回帖
(1)
王桂香
2021-12-8 14:23:03
现象:收发数据时第一个字符丢失
使用STM32自带库函数:USART_SendData()函数发送一堆字符是没有问题的;若发送的数据量很小时,此时串口发送的只是最后一个字符,就会导致发送的数据莫名其妙的丢失。
发送字符串OK时只返回K;
发送字符串+NBAND:5时只返回NBAND:5;
发送字符串 46011时只返回6011;
解决方案
网上找了许多解决的方案,但是1,2方案对我当时所做的项目没有任何作用:
方案1. 在每一个字符发送后检测状态位。
然而结果没变,丢失第一个字符。
方案2. 修改库函数
修改STM32自带的USART_SendData()函数。(加入while语句,等待发送缓冲区空才能发送下一个字符。)
结果一样,没有变化,照样还是丢失第一个字符。
方案3.照样修改库函数
猜测也许是某个特殊原因,使第二个数据覆盖了首个数据,使得首个数据丢失。
于是修改STM32自带的USART_SendData()函数,加入延时函数。
现象:
现象:收发数据时第一个字符丢失
使用STM32自带库函数:USART_SendData()函数发送一堆字符是没有问题的;若发送的数据量很小时,此时串口发送的只是最后一个字符,就会导致发送的数据莫名其妙的丢失。
发送字符串OK时只返回K;
发送字符串+NBAND:5时只返回NBAND:5;
发送字符串 46011时只返回6011;
解决方案
网上找了许多解决的方案,但是1,2方案对我当时所做的项目没有任何作用:
方案1. 在每一个字符发送后检测状态位。
然而结果没变,丢失第一个字符。
方案2. 修改库函数
修改STM32自带的USART_SendData()函数。(加入while语句,等待发送缓冲区空才能发送下一个字符。)
结果一样,没有变化,照样还是丢失第一个字符。
方案3.照样修改库函数
猜测也许是某个特殊原因,使第二个数据覆盖了首个数据,使得首个数据丢失。
于是修改STM32自带的USART_SendData()函数,加入延时函数。
现象:
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32
串口
字符
为什么
stm32
f205
串口
上电后发送
字符
串的
第一个字
节会
丢失
2021-12-09
809
stm32
串口
发送
字符
串,
第一个字符
丢失
如何解决?
2021-12-09
2142
STM32
485
串口
只能发送
第一个字符
2019-01-30
7795
怎样
去
解决
STM32
串口
第一个数据
丢失
的问题
呢
2021-12-09
2131
如何输出连接的
一
组
字符
串中的
第一个字符
串?
2021-04-19
3969
为什么
stm32
用printf重定向到
串口
发现
一个字符
也没打印出来
呢
2021-12-01
1069
ATK—HC05蓝牙模块连接示波器观察接收端
串口
数据
发现异常
2019-02-14
2106
STM32
串口
接收
字符
串问题
2017-10-12
15857
STM32
L0使用stop模式下,9600波特率,低功耗
串口
接收
数据
,发现偶尔
丢失
第一个字
节,什么原因?
2024-07-05
199
蓝牙传输掉
字符
2019-04-29
1924
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分