通过RS-485串口通信时控制RTS线路

时间:2013-10-22 21:38:18

标签: python linux pyserial rs485

我正在尝试通过内核2.6.39的Linux机器上的串行接口RS-485进行通信。我正在使用this breakout boardpySerial模块。当我通过界面写东西时,我的数据经常被破坏。在分组讨论板的产品页面,有人提到:

  

我从一开始就注意到,在发送串行数据之后我需要延迟大约25 ms,然后才能将RTS线路拉低,否则传输会被破坏或传输。

我发现写入字节时RTS线很快变高,但写入后立即变低。如何保持该线高(更长一点)?

2 个答案:

答案 0 :(得分:0)

您可以使用以下方式手动设置RTS:

setRTS(level=True)

然后在25ms延迟后清除它:

setRTS(level=False)

答案 1 :(得分:0)

经过大量的反复试验,我认为我发现了问题。我的假设是当我使用serial.write()时,关闭内核的RS-485驱动程序将RTS线设置为高电平。 serial.write()将字符写入/ dev / ttyS1。从这时起,用于RS-485的Linux驱动程序控制串行总线以便写入字符。在此操作期间,它会在实际写入时刻内将RST线设置为短时间到高电平。

我无法在更高级别上控制此写操作,我想我应该入侵驱动程序或将RTS线连接到我可以控制的其他GPIO。