qq_52897741 2023-02-16 21:39 采纳率: 62.5%
浏览 36
已结题

STM32串口485读取多个设备信息

我通过STM32单片机两个串口分别读取两个设备的信息并向上位机发送数据,两个串口的波特率不同,,串口485协议定时通过两个串口发送读取命令,刚开始测试的时候读取数据正常,但是运行一段时间之后数据就开始出现误差,在过了一段时间就停止向上位机发送信息。
个人猜测是串口发送读取命令出现错误,于是我分别测试单独读取单个设备的信息,没有问题,但是两个设备一起读取就又出现上述的错误,所以发帖向大家请教可能原因。

  • 写回答

2条回答 默认 最新

  • Evaporator Core 2023-02-16 21:55
    关注

    出现这种问题有可能是因为串口通信过程中的一些错误导致的,以下是一些可能的原因和解决方法:

    波特率设置不正确:确认两个串口的波特率设置是否正确,并且是否匹配上位机的波特率设置。如果波特率设置不匹配,可能会导致串口数据传输出错。
    延时设置不合理:确认串口通信过程中的延时设置是否合理。如果延时时间过长或过短,可能会导致串口通信出现问题。建议使用适当的延时时间。
    数据解析不正确:确认程序中对接收到的数据进行解析的代码是否正确。如果解析不正确,可能会导致发送给上位机的数据出现误差。
    缓存区溢出:确认程序中是否有缓存区溢出的情况发生。如果缓存区溢出,可能会导致数据发送出错或者停止发送数据。可以尝试增加缓存区大小或者调整程序中的读取和发送数据的频率。
    电磁干扰:确认系统中是否有电磁干扰的情况。如果存在电磁干扰,可能会导致串口通信出现错误。可以考虑在系统中增加屏蔽措施或者调整串口通信的距离。
    以上是一些可能的原因和解决方法,可以根据具体情况进行排查和解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月26日
  • 已采纳回答 2月18日
  • 创建了问题 2月16日

悬赏问题

  • ¥20 全书网Java爬取数据
  • ¥15 SAP HANA SQL Script 。SUM OVER 怎么加where
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题
  • ¥60 为什么使用python对地震数据进行umap降维后,数据成图会出现不连续的现象
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
  • ¥15 STM32串口接收问题
  • ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接
  • ¥15 filenotfounderror:文件是存在的,权限也给了,但还一直报错
  • ¥15 安卓qpython向ksweb服务器post文件失败