|
串口异常 问题描述:使用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 |
| 这个0xFF只有上电时才会产生吧, 一般串口协议有帧头的, 软件里把这个0xFF去掉就可以啦. |
| 依UART原理,所有UART发送数据都有有启动位开始,也就是拉低(1位或1.5位时间依配置),STM32 在REset 之后,是INPUT 模式,此时可能是低电平,然后配置成高与OUTPUT模式,接收端会误以为UART 启动发送。 需要解决这个问题,TX 或 RX 硬件10K上拉到VCC, 然后软件初始化串口IO 先设轩高电平,然后更改输出模式。通常可以解决上电发送一个0XFF. 其实不仅是UART会出现此情况。 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版