
1. 问题描述客户在使用 STM32G071RB 的 LPUART 单线半双工模式开发相关的应用时,进行连续接收发送数据时,客户在检测到 RXNE 位时,认为接收完成,立即进行发送,发现 stop位(波形不完整)与 start 位发生了重叠。 客户配置: 时钟频率: HSI=16MHz 波特率: 9600 bits/s. 停止位: 1bit 字长: 8 bits 校验: none 2. 问题分析 复现客户问题: 实验环境搭建:使用两块 STM32G071RB NUCLEO 板子采用单线半双工通信,将两块板子编号为 STM32G071RB NUCLEO_A 和 STM32G071RB NUCLEO_B。使用逻辑分析仪抓取信号波形。 使用 STM32CubeMX 进行基础配置生成代码,具体配置如图 ![]() ![]() 复现客户问题代码如下: STM32G071RB NUCLEO_A 发送 0b0101 0101
STM32G071RB NUCLEO_B 收到后发送数据 0b0101 1010
测试结果如下图: ![]() 从图中可以看出 1bit 约为 100us,设备 A 的 stop 位仅有 54.82us 。A 设备的 stop 位与 B 设备的 start 位重叠在了一起。B 设备检测到 RXNE 置位后,接收数据后立即发送数据,导致 B 开始发送的时候,stop 位只有一半,导致波形不完整。 那怎样控制 stop 位与 start 位之间的时间使之区分开呢? 完整版请查看:附件 ![]() |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南