STM32H743+串口DMA

我通过两个串口DMA与定时器,同时向两个modbus-485设备发送读取命令帧,分别读取两个设备的数据,但是读取到的其中一个设备数据会产生很大的异常波动,而另外一个数据则没有问题,请问有没有遇到过类似问题的?
顺便问一下,为什么 我将读取命令帧封装起来就不能同时通过定时器向两个设备发送读取命令帧,我使用的是STM32H743。我个人猜测可能是波特率不同的原因导致的,会不会是波特率的问题?

“Devil组”引证GPT后的撰写:

  • 这种异常波动的问题可能有多种原因,但是如果只有一个设备存在问题,那么最有可能的原因是这个设备本身的问题或者它的通讯环境存在干扰或噪声。你可以尝试对这个设备进行单独测试或更换设备来验证问题是否存在。
  • 至于你的第二个问题,可能是因为你同时向两个设备发送命令帧时,数据发送冲突或者波特率设置不正确导致的。你可以尝试分别测试两个设备来排除问题。如果仍然存在问题,你可以检查DMA和定时器的设置,以确保它们的工作模式和波特率设置正确。另外,你还可以检查你的代码,确保DMA和定时器在同时向两个设备发送命令时没有互相干扰。

分开两个设备,单独测试串口DMA+定时器的时候,是没有错误的,所以可以排除波特率的问题。向两个设备发送命令通过两个不同串口,应该不存在干扰的情况,我之前和别人讨论有建议我在定时器两条读取命令之间加一个微秒延时。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^