debug 中调试时串口发送代码执行两次
使用ST32F4205RBT在 STM32CubeIDE/MX 中进行开发。 通过ST3485将UART5转为RS485,再用转换模块再转为usb,链接到PC的虚拟串口。问题是,在 debug 中调试时,会在 main 中串口发送之前的断点之前传输一次正确数据到pc,在单击运行按钮时,它会执行预期的串口发送代码并按应有的方式传输 数据。也就是多传输一次数据检查 UART 初始化代码。 用“Run Without Debug”模式来运行程序。
可以在 main 函数中添加一些调试代码,检查中断标志和 DMA 状态。 用全局标志控制发送。 检查启动代码(如 startup_stm32f429xx.s),确保没有在 main 函数之前调用任何 UART 发送函数。 检查USB 转 RS485 模块有没有缓存任何数据。可以尝试在程序开始执行之前,发送一个复位信号或清除缓存的命令。 更新 STM32CubeMX 和 STM32CubeIDE至最新版本。
页:
[1]