RS232 通信问题

RS232 通信问题

我曾经使用过使用 RS232 通信的串行设备。我想检查设备的信号。当我按下按钮时,我可以获得 Hexa 数据(之后我会说信号)。我的电脑有 4 个串行端口(主板:asrock IMB-183),所以我想将串行连接到设备。当我使用 USB2SERIAL 测试设备时,我可以使用 minicom 获取信号。但是当我使用串行端口时,minicom 不起作用。

我使用 Windows(同一台计算机和同一台设备)和终端程序(如 highper 终端)检查了 Rx、Tx,可以收到信号。所以我认为我在使用 Linux 和串口时遇到了问题。

我检查了我的 BIOS。在 SuperI/OI 上打开 COM 端口以启用。然后我检查了组、拨出。

现在我向您展示我的计算机和设备的状态。

 # id
......, 20(dialout), .......

 # cat /proc/tty/driver/serial
serinfo : 1.0 driver revision:
0: uart : 16550A port : 000003F8 irq: 4 tx:0 rx:0 RTS|DTR
1: uart : 16550A port : 000002F8 irq: 3 tx:0 rx:0 RTS|DTR
........

Linux 3.13.0-32-通用,Ubuntu 12.04

答案1

正如您所提到的,所有端口都可以在 Windows 上运行,但不能在 Ubuntu 上运行,也许您可​​以尝试使用较新的内核(16.04 / 16.10 LiveUSB 就可以)来看看它是否可以使其他端口运行。

无论如何,至少看起来您的 ttyS0 正在使用 echo / cat 命令。我最后建议的是,如果您仍然无法从串行设备获取任何信号,请尝试使用stty命令更改波特率:

sudo stty -F /dev/ttyS0  # Print current setting
sudo stty -F /dev/ttyS0 9600  # Set the baud rate

这里的9600应该替换为正确的波特率。

有关 stty 命令的更多信息可以找到这里

相关内容