如何从串行端口的两个引脚发送值?

如何从串行端口的两个引脚发送值?

我正在尝试将我的 Linux 系统与我的微控制器进行相互通信。

我已将 DB-9 引脚配置为全双工 RS485,如下所示:

DB-9 RS-485

我已将 Pin-7 与 Pin-8 连接起来。

我已将 Pin-2 与 Pin-3 连接起来。

#!/usr/bin/env bash
stty cs8 cstopb parenb -parodd < /dev/ttyO0 #I configure the Serial Port here
while :
do
        echo -ne '\x00\x05\x00\x00\xFF\x00\x8D\xEB'>/dev/ttyO0
        usleep 10000
done

我可以使用stty命令配置串行端口。

这可能是一个愚蠢的问题,但我希望串行端口从两个插座(RS-485 的 A 和 B)输出相同的值。

我想要这个,因为我的微控制器不将该信号视为 Modbus-RTU 信号。

但是,当我交叉连接引脚时,微控制器将其视为信号,但不接受它,因为它不是正确的信号。

我使用另一个 modbus 主设备连接我的微控制器,逻辑分析仪的输出如下:

其他设备的逻辑分析仪输出

但是当我的linux系统连接到它时,输出信号是这样的:

Linux系统逻辑分析仪输出

如何从两端输出相同的信号?

编辑:我已经连接了如下图所示的引脚:

连接

然后我将它们连接到我的微控制器。

答案1

我已将 DB-9 引脚配置为全双工 RS485,如下所示

您是否还有使用差分信号作为 RS485 工作的硬件,或者是否有普通的串行端口?因为普通的串行端口硬件不会产生 RS485 信号,并且逻辑分析仪的输出看起来非常像普通的串行端口。

所以你要么需要购买RS485硬件,要么需要购买RS232到RS485转换器。您可能可以自己制作一个,这将是电子堆栈交换的一个问题。

相关内容