[STM32F4] debug 中调试时串口发送代码执行两次

[复制链接]
1514|7
 楼主| 我的牙白 发表于 2025-4-14 08:30 | 显示全部楼层 |阅读模式
使用ST32F4205RBT在 STM32CubeIDE/MX 中进行开发。 通过ST3485将UART5转为RS485,再用转换模块再转为usb,链接到PC的虚拟串口。
问题是,在 debug 中调试时,会在 main 中串口发送之前的断点之前传输一次正确数据到pc,在单击运行按钮时,它会执行预期的串口发送代码并按应有的方式传输 数据。也就是多传输一次数据

classroom 发表于 2025-4-14 15:36 | 显示全部楼层
检查 UART 初始化代码。
laocuo1142 发表于 2025-4-14 17:00 | 显示全部楼层
用“Run Without Debug”模式来运行程序。
flycamelaaa 发表于 2025-4-14 19:00 | 显示全部楼层
可以在 main 函数中添加一些调试代码,检查中断标志和 DMA 状态。
powerantone 发表于 2025-4-14 19:36 | 显示全部楼层
用全局标志控制发送。
probedog 发表于 2025-4-14 22:00 | 显示全部楼层
检查启动代码(如 startup_stm32f429xx.s),确保没有在 main 函数之前调用任何 UART 发送函数。
stormwind123 发表于 2025-4-14 23:00 | 显示全部楼层
检查USB 转 RS485 模块有没有缓存任何数据。可以尝试在程序开始执行之前,发送一个复位信号或清除缓存的命令。
classroom 发表于 2025-4-14 23:00 | 显示全部楼层
更新 STM32CubeMX 和 STM32CubeIDE至最新版本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部