你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 CUBEMX生成的串口第一帧数据多出一个0xFF

[复制链接]
九天揽月3 发布时间:2020-10-23 21:52
; h+ x! @9 r7 B
串口异常
问题描述:使用STM32 CUBEMX生成的串口代码发送数据,第一帧数据之前会有一个0xFF

0 x$ Y$ V; J) Y7 g3 o6 f
硬件使用的是STM32F107VCT6PD5PD6

8 H9 }% Z2 `, V+ x0 j- w# [8 I
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps10.jpg
PD5PD6默认为普通IO口,管脚重映射为串口功能

, N. V! F: ^7 A1 _& k& w% X0 e
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps11.jpg
使用STM32 CUBEMX生成的串口代码发送数据,第一帧数据之前会有一个0xFF,这并不是我的本意
; `1 c: X- {$ s  _- O/ {  z6 A8 ^+ x
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps12.jpg
通过示波器观察PD5引脚的波形,发现每次复位单片机后捕捉到的波形是

6 y5 k( a1 R& ?* l, o( I1 B! D4 ^% N* s1 E
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps13.jpg
单步调式发现运行到__HAL_AFIO_REMAP_USART2_ENABLE();之后会使PD5引脚产生一个低电平脉冲
1 p+ [, z* \+ G9 Z6 B$ u) o
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps14.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps15.jpg
将代码做如下调整,再次测量发现问题得到解决,低电平脉冲不见了,串口调试助手收到的数据也正常了

# Q9 X3 J: L/ Z8 o+ \
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps16.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps17.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps18.jpg
1 串口所用管脚.png
2 PD5 PD6重映射为串口.png
3 串口调试助手接收到的异常数据.png
4 示波器捕捉到的异常数据.png
5 单步调试定为代码异常位置.png
6 单步调试定为异常波形.png
9 修改后数据正常.png
7 修改异常代码位置.png
8 修改后波形为正常.png
收藏 评论2 发布时间:2020-10-23 21:52

举报

2个回答
sumoon 回答时间:2020-10-26 09:32:05
提示: 作者被禁止或删除 内容自动屏蔽
boclandc 回答时间:2020-10-26 11:35:49
依UART原理,所有UART发送数据都有有启动位开始,也就是拉低(1位或1.5位时间依配置),STM32 在REset 之后,是INPUT 模式,此时可能是低电平,然后配置成高与OUTPUT模式,接收端会误以为UART 启动发送。 需要解决这个问题,TX 或 RX 硬件10K上拉到VCC, 然后软件初始化串口IO 先设轩高电平,然后更改输出模式。通常可以解决上电发送一个0XFF. 其实不仅是UART会出现此情况。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版