问题描述

今天做485通讯时 发现一个问题,我用串口助手测试主副板功能时均正常,然后我将串口助手并联到485总线上,神奇的事情发生了主副机与串口助手通讯均正常,但设备间无通讯
这让我百思不得其解,信息是相同的为什么和助手可通讯,但主从互相无法通讯呢?
我一开始以为是电路的故障,但是烧写了同事的老程序发现,主副板通讯正常。我就仔细看了下代码发现波特率设置的与之前不同,我的程序里是用115200进行通信的,而之前的程序同事使用的是9600可是从stm32芯片手册和MAX13487上来看115200不该是瓶颈啊,串口的速度也已经设置为最高了。

解决方法

将波特率换为9600,主副板通信正常
但是我还是没想通为什么电脑就可以接收正常而,互通就不行呢,如果是因为电脑的缓存大,不会丢失字节,那么他作为发端时板子也是接收正常的又该如何解释。但从debug的调试结果来看 主板发往副板的信号,经副板接收时已经失真,我现在唯一的解释就是usb转485模块具有一定的整形功能,在高频率下也可工作正常,而主副板的缺少整形电路,导致高频率下的信号无法正确采集,信号失真。

以下是我在搜索时找的类似问题,是232电路
串口问题——两个设备和电脑串口助手可以正常通信,但这两个设备不能通信

总结

多用示波器找问题,串口乱码最多的情况就是波特率问题

相关文章:

  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
  • 2021-10-25
  • 2021-10-31
  • 2022-01-12
猜你喜欢
  • 2021-05-30
  • 2022-12-23
  • 2021-12-08
  • 2021-07-28
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
相关资源
相似解决方案