【发布时间】:2013-10-22 21:38:17
【问题描述】:
我正在尝试通过带有内核 2.6.39 的 Linux 机器上的串行接口 RS-485 进行通信。我将this breakout board 与pySerial 模块一起使用。当我通过界面写东西时,我的数据经常被破坏。在分线板的产品页面上有人提到:
我从一开始就注意到,我需要在发送串行数据后延迟大约 25 毫秒,然后才能将 RTS 线拉低,否则传输会损坏或无法传输。
我发现 RTS 线在我写入字节时很快变高,但在写入后立即变低。我如何保持这条线高(更长一点)?
【问题讨论】:
-
通常必须使用 TIOCSRS485 ioctl 将 Linux 串行端口驱动程序配置为 RS-485 模式。此 ioctl 采用一个数据结构,该结构指定如何重新利用 RTS 握手信号并控制发送器。有一个参数可以指定您想要的等待时间。阅读lxr.free-electrons.com/source/Documentation/serial/… 您可能应该执行 get ioctl 来读取结构,增加保持时间,然后执行 set ioctl。
标签: python linux pyserial rs485