因此,我正在尝试通过串行端口连接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
先谢谢您了:)
答案 0 :(得分:1)
您的串行端口驱动程序似乎无法与setserial一起使用。
请参见手册页:
setserial通过ioctl()调用获取信息。万一驾驶员 如果您的设备不支持TIOCGSERIAL,则“无效参数”为 返回。
我认为您需要改用stty
或minicom之类的东西。