我不是Linux或串口编程的专家,我对Linux串口通信的理解是:系统将某些/ dev / ttyS *文件链接到某个物理串口,然后系统或其他程序可以与之交谈通过/ dev / ttyS *文件连接到该串行端口的任何设备。并且/ dev / ttyS *文件将被分配/链接到串口,无论是否连接任何设备。
如果我对此是正确的,那么在C中是否有任何方法可以获得所有链接到物理串口的/ dev / ttyS *文件?
已经搜遍过Google和所有搜索结果,没有找到真正有帮助的内容,请停下来!
PS,我可以通过以下方式找到这样的文件:
dmesg | grep ttyS
但是我需要更精确的方法来获取这些信息,像libudev这样的东西可以做到这一点吗?
答案 0 :(得分:0)
我并不完全确定这里要问的是什么,但映射/ dev / ttyS *的方式在年龄上没有变化,第一个串口,有时用DOS名称COM1调用,仍可以{{1 },第二个是/dev/ttyS0
,依此类推。
从内核文档,即文件/dev/ttyS1
,您仍然可以找到一些有用的信息:
Documentation/devices.txt
如果您的问题如何查找系统上的所有串口,请参阅4 char TTY devices
0 = /dev/tty0 Current virtual console
1 = /dev/tty1 First virtual console
...
63 = /dev/tty63 63rd virtual console
64 = /dev/ttyS0 First UART serial port
...
255 = /dev/ttyS191 192nd UART serial port
UART serial ports refer to 8250/16450/16550 series devices.
哪些应该具有(除非您使用的内核非常古老)条目-id和by-uuid。