繁体   English   中英

确定串口是否存在,Linux C/C++

[英]Determine is a Serial Port exists, Linux C/C++

我的开发目标是一台 Linux 计算机,它有两个物理串口,分别位于 /dev/ttyS0 和 /dev/ttyS1。 我还希望定义 /dev/ttyS2 和 /dev/ttyS3。

使用 stty -f /dev/ttyS0 和 S1 报告两个串行端口的配置,并报告 S2 和 S3 的“不存在”的内容。

硬件设计人员正在讨论为主板上内置的串行端口提供 USB。 它们将是外部的 DB9 连接器,而只是电路 - 内部没有 USB 连接器。 无法保证 USB 转串口连接的数量,我知道可以为“多个”而不是一个进行设计。

因此,在设置我的端口服务器守护程序时,我需要能够确定哪些 ttyS 和哪些 ttyUSB 是“真实的”,哪些不是。 会有占位符 ttyUSB 吗? 如果一个被“拔掉”(说它确实是 PC 内部的一个真正的 USB 耦合器)怎么办?

是否有比 popen()ing stty 并检查其 output 以确定串行端口状态更好的方法? stty有C API吗?

谢谢!

stty 使用的“C-API”是tcsetattr(3)tcgetattr(3)

要在不打开设备的情况下查找 TTY,您可以查看以下问题:

如何在不打开 Linux 的情况下找到所有串口设备(ttyS、ttyUSB、..)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM