问题描述
客户在使用 STM32G071RB 的 LPUART 单线半双工模式开发相关的应用时,进行连续接收发送数据时,客户在检测到 RXNE 位时,认为接收完成,立即进行发送,发现 stop位(波形不完整)与 start 位发生了重叠。
客户配置:
时钟频率:HSI=16MHz
波特率:9600 bits/s.
停止位:1bit
字长:8 bits
校验:none
问题分析
复现客户问题:
实验环境搭建:使用两块 STM32G071RB NUCLEO 板子采用单线半双工通信,将两块板子编号为 STM32G071RB NUCLEO_A 和 STM32G071RB NUCLEO_B。使用逻辑分析仪抓取信号波形。
问题解决
解决 LPUART 单线半双工连续通信过程中 start 位与 stop 位重叠的问题我们找出了三种方法:
- 降低 LPUART 时钟
- 使能 TE、RE 位
- 使能 485 驱动器
总结
在 STM32G071 的 LPUART 在单线半双工连续通信过程中可以通过使能 485 驱动器灵活控制 stop 位与 start 位之间的时间,使得接收和发送不会相互干扰。
阅读全文