我的牙白 发表于 2025-4-14 08:30

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

使用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至最新版本。
页: [1]
查看完整版本: debug 中调试时串口发送代码执行两次