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

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

[复制链接]
jiutianlanyue3 发布时间:2020-10-23 21:52

串口异常
问题描述:使用STM32 CUBEMX生成的串口代码发送数据,第一帧数据之前会有一个0xFF

硬件使用的是STM32F107VCT6PD5PD6

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps10.jpg
PD5PD6默认为普通IO口,管脚重映射为串口功能

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps11.jpg
使用STM32 CUBEMX生成的串口代码发送数据,第一帧数据之前会有一个0xFF,这并不是我的本意

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps12.jpg
通过示波器观察PD5引脚的波形,发现每次复位单片机后捕捉到的波形是

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps13.jpg
单步调式发现运行到__HAL_AFIO_REMAP_USART2_ENABLE();之后会使PD5引脚产生一个低电平脉冲

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps14.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps15.jpg
将代码做如下调整,再次测量发现问题得到解决,低电平脉冲不见了,串口调试助手收到的数据也正常了

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_yao 回答时间:2020-10-26 09:32:05
这个0xFF只有上电时才会产生吧, 一般串口协议有帧头的, 软件里把这个0xFF去掉就可以啦.
boclandc 回答时间:2020-10-26 11:35:49
依UART原理,所有UART发送数据都有有启动位开始,也就是拉低(1位或1.5位时间依配置),STM32 在REset 之后,是INPUT 模式,此时可能是低电平,然后配置成高与OUTPUT模式,接收端会误以为UART 启动发送。 需要解决这个问题,TX 或 RX 硬件10K上拉到VCC, 然后软件初始化串口IO 先设轩高电平,然后更改输出模式。通常可以解决上电发送一个0XFF. 其实不仅是UART会出现此情况。

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

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