无法从串行端口ttymxc读取数据

时间:2019-05-23 10:00:31

标签: linux serial-port embedded-linux modbus rs485

因此,我正在尝试通过串行端口连接RS485将嵌入式linux设备与服务器连接。
我正在使用USB / RS适配器将其连接到笔记本电脑。 服务器能够接收请求并发送答案,但是客户端不会收到响应。 要对其进行更多研究,我尝试检查设备和带电源外壳的笔记本电脑之间的连接

PS C:\Users\oziat.VIX> $port= new-Object System.IO.Ports.SerialPort COM4,9600,None,8,one
PS C:\Users\oziat.VIX> $port.open()
PS C:\Users\oziat.VIX> $port.ReadLine()
hello

来自客户端:

echo "hello" > /dev/ttymxc1

这意味着,如果我尝试从Powershell发送数据,那么我不会从另一端收到任何信息

PS C:\Users\oziat.VIX> $port.WriteLine("Hello world")
# cat  /dev/ttymxc1
_

我试图检查是否是硬件问题。我几乎可以肯定这不是(因为我能够在服务器上接收数据)

已设置序列的输出

# setserial /dev/ttymxc1
/dev/ttymxc1, UART: undefined, Port: 0x0000, IRQ: 32, Flags: low_latency
#

我不知道为什么将uart设置为undefined,但是我无法更改

setserial: can't set serial info: Invalid argument

先谢谢您了:)

1 个答案:

答案 0 :(得分:1)

您的串行端口驱动程序似乎无法与setserial一起使用。

请参见手册页:

  

setserial通过ioctl()调用获取信息。万一驾驶员   如果您的设备不支持TIOCGSERIAL,则“无效参数”为   返回。

我认为您需要改用stty或minicom之类的东西。