|
串口异常 问题描述:使用STM32 CUBEMX生成的串口代码发送数据,第一帧数据之前会有一个0xFF。 硬件使用的是STM32F107VCT6的PD5、PD6 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7784\wps10.jpg PD5、PD6默认为普通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 |
微信公众号
手机版
f103遇到过类似的问题cubemx生成框架,使用到了串口1和3,串口1初始化时运行到huart1.Init.OverSampling = UART_OVERSAMPLING_16;就出现一个10us的低电平,后续正常高电平,非常离TMD谱
傻逼ST造的傻逼芯片,又配上傻逼cube全家桶,傻逼到家了,要不是开发环境加持的话,早被xtensa干翻了
串口3只接收,所以Tx脚有无问题没测试