打印
[STM32F4]

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

[复制链接]
109|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 状态。

使用特权

评论回复
5
powerantone| | 2025-4-14 19:36 | 只看该作者
用全局标志控制发送。

使用特权

评论回复
6
probedog| | 2025-4-14 22:00 | 只看该作者
检查启动代码(如 startup_stm32f429xx.s),确保没有在 main 函数之前调用任何 UART 发送函数。

使用特权

评论回复
7
stormwind123| | 2025-4-14 23:00 | 只看该作者
检查USB 转 RS485 模块有没有缓存任何数据。可以尝试在程序开始执行之前,发送一个复位信号或清除缓存的命令。

使用特权

评论回复
8
classroom| | 2025-4-14 23:00 | 只看该作者
更新 STM32CubeMX 和 STM32CubeIDE至最新版本。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

10

帖子

0

粉丝