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

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

[复制链接]
九天揽月3 发布时间: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
收藏 评论3 发布时间:2020-10-23 21:52

举报

3个回答
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会出现此情况。
SMT64 回答时间:2 小时前

f103遇到过类似的问题cubemx生成框架,使用到了串口1和3,串口1初始化时运行到huart1.Init.OverSampling = UART_OVERSAMPLING_16;就出现一个10us的低电平,后续正常高电平,非常离TMD谱image.png

傻逼ST造的傻逼芯片,又配上傻逼cube全家桶,傻逼到家了,要不是开发环境加持的话,早被xtensa干翻了

image.png

串口3只接收,所以Tx脚有无问题没测试

image.png
image.png

所属标签

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