在C / C ++和Ubuntu中自动选择正确的端口ttyS *

我有一个程序在Ubuntu中使用WxWidgets和C / C ++,并在需要时从串行设备读取以输出数据。 它可以工作,并且串行设备通常连接到ttyS4。 问题是,有时,如果我重新引导系统,则设备可以连接到ttyS1或ttyS2;但是,如果我重新启动系统,则可以将它们连接到ttyS2。在这种情况下,我的代码无法建立与设备的连接,我需要手动更改端口。

进行代码检查(正确的ttyS *端口)并在找不到任何内容时退出该过程的更简便,更智能的方法是什么?

这是我的代码:

char *portname = "/dev/ttyS4";
int fd;
int wlen;
printf("Opening the connection on serial port\n");
fd = open(portname,O_RDWR | O_NOCTTY | O_SYNC);
if (fd < 0) {
    printf("Error opening %s: %s\n",portname,strerror(errno));

}
/*baudrate 9600,8 bits,no parity,1 stop bit */
set_interface_attribs(fd,B9600);
ppliang69 回答:在C / C ++和Ubuntu中自动选择正确的端口ttyS *

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3117836.html

大家都在问