电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
STM32串口在首次发送字符的时候,首字符丢失解决办法
已解决
73482
个问题
已帮助
5993
位优秀工程师
STM32串口在首次发送字符的时候,首字符丢失解决办法
huihui163
2019-03-04
浏览量:1017
STM32串口在首次发送字符的时候,这个怎么解决啊
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
川楠
按照下面的流程,红色框起来的是关键语句。
发布于
2019-03-04
举报
评论 0
4
0
其他答案
数量:
10
yhj416606438
把usart1->sr改成USART_GetFlagStatus(USART1 USART_FLAG_TC)就可以了
发布于
2019-03-04
举报
评论 0
2
0
我是假管贴胸小助手
应该是你的数据发送完成判断出错了,改成这样试一试,我用的没啥问题。while((USART1->SR & 0x0080)!=0x0080);
发布于
2019-03-04
举报
评论 0
1
0
xdsnet
你对比一下几个例程,找一下差异
而且你就介绍一下问题,没有给代码也不好说啊。
发布于
2019-03-04
举报
评论 0
1
0
大少爷安安
实咋一看是说的通的,但是在仔细看手册的时候发现 TC 和 TXE 标志位在复位的时候被置1 ,这样第一次while循环就是没有用的。这样导致了首次第一个字符还没有被输出,就被后面的字符覆盖掉,造成实际看到的丢失现象。解决办法就很简单:在前面加上一句 USART1->SR;
发布于
2019-03-04
举报
评论 0
1
0
莱克迷KW
一般的方式是USART_GetFlagStatus函数的的参数使用USART1 USART_FLAG_TC。
但也要根据你的代码看看实际的情况,最好是发一下你的程序
发布于
2019-03-04
举报
评论 0
1
0
chen0000009
这种应该是程序判断上有误,在调试模式下看看,串口发送的时候,第一个字节是否被正确写入寄存器
发布于
2019-03-04
举报
评论 0
0
0
feiante
一楼回答的是正解。
发布于
2019-03-05
举报
评论 0
0
0
代人凌峰
两种方式,一种是初始化后清除标志位,一种是先发送一个没用的数据,从第二次开始就正常了
发布于
2019-03-06
举报
评论 0
0
0
明有几时有
在设置串口标志时使用USART1 USART_FLAG_TC进行配置
发布于
2019-03-06
举报
评论 0
0
0
快没时间了
发之前清一下标志位或者就是初始化之后发个空字符。
发布于
2019-03-26
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
STM32串口在首次发送字符的时候,首字符丢失解决办法
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: