gpt4 book ai didi

linux - 如何知道哪个 ttyS* 文件链接到哪个串行端口?

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:47 26 4
gpt4 key购买 nike

我不是 Linux 或串口编程专家,我对 Linux 串口通信的理解是:系统将某个/dev/ttyS* 文件链接到某个物理串口,然后系统或其他程序可以通过/dev/ttyS* 文件与连接到该串口的任何设备进行通信。无论连接了任何设备,/dev/ttyS* 文件都会被分配/链接到串行端口。

如果我的观点是正确的,那么在 C 语言中,有什么方法可以获取链接到物理串行端口的所有此类/dev/ttyS* 文件吗?

已经在 Google 和 SO 上进行了搜索,没有找到任何真正有用的东西,请暂停!

PS,我可以使用以下方法找到此类文件:

dmesg | grep ttyS

但是我需要一种更精确的方法来获取这些信息,像libudev这样的东西可以做到这一点?

最佳答案

我不太确定这里问的是什么,但是/dev/ttyS* 的映射方式多年来没有改变,第一个串行端口(有时用 DOS 名称 COM1 调用)仍然可以通过 /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.

如果您对如何查找系统上的所有串行端口有疑问,请参阅 /dev/serial ,它应该包含(除非您使用的内核非常古老)by-id 和 by-uuid 条目。

关于linux - 如何知道哪个 ttyS* 文件链接到哪个串行端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22058401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com