我正在尝试将我的 Linux 系统与我的微控制器进行相互通信。
我已将 DB-9 引脚配置为全双工 RS485,如下所示:
我已将 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系统连接到它时,输出信号是这样的:
如何从两端输出相同的信号?
编辑:我已经连接了如下图所示的引脚:
然后我将它们连接到我的微控制器。
答案1
我已将 DB-9 引脚配置为全双工 RS485,如下所示
您是否还有使用差分信号作为 RS485 工作的硬件,或者是否有普通的串行端口?因为普通的串行端口硬件不会产生 RS485 信号,并且逻辑分析仪的输出看起来非常像普通的串行端口。
所以你要么需要购买RS485硬件,要么需要购买RS232到RS485转换器。您可能可以自己制作一个,这将是电子堆栈交换的一个问题。