我有一个插入的 USB 串行设备插入我的 Windows 并使用 virtualbox 串行映射它,例如 COM1 -> /dev/ttyS0..
现在我怎么知道我的设备正在使用哪个串行端口。我现在知道我正在使用/dev/ttyS0。但是如果我不知道怎么办?.. Linux Debian 在启动时创建这个永久串行端口设备 /dev/ttyS0-S3。
我如何测试 /dev/ttyS0 是我在 c 中使用的真实端口。
这是我测试端口是否正确的方法。
devfd=open("/dev/ttyS0",O_WRONLY | O_NOCTTY | O_NDELAY);
if(s_fd<0) exit(1);
printf("open\n"); //It will always return true printing open because this device is created on boot time and is always available. so i made another check and that is to write to the port(Assuming i have set the permission to have full access to the serial port). if i can write to the port then it means it is really the port im using.
test=write(devfd,"ATZ",4);
if(test<0) printf("Can't write to port: Maybe not the serial port ur using\n");
printf("Device is avaialable\n"); // returns true because we can write to the port
如果有设备插入该串行端口,您能否向我展示 c 中如何检查串行端口的其他示例?
或者在 c 中对以下串行端口 /dev/ttyS0 - /dev/ttyS3 进行测试,如果以下设备已插入它们。
谢谢。