プラグを差し込んだusb-serialデバイスをWindowsに接続し、仮想ボックスを使用してシリアルマッピングしました(例: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の他のサンプルを見せてもらえますか?
または、次のシリアルポート/ dev / ttyS0-/ dev / ttyS3に対して、次のデバイスが接続されている場合は、cでテストします。
ありがとう。