CentOSでシリアルポートを設定しようとしていますが、動作させることができません。これは私が問題を抱えているコードです。
tcgetattr(idComDev[i], &options); // get current settings
printw("default baudrate is %d ", cfgetispeed(&options));
cfsetispeed(&options, B115200); // set baud rate
cfsetospeed(&options, B115200); // set baud rate
tcsetattr(idComDev[i], TCSANOW, &options);// save the settings
printw("Seg %d = COM%hd at %d Baudrate",i,CommNo[i], cfgetispeed(&options));
これからの出力は次のとおりDefault baud rate is 4098 Seg0 = COM1 at 4098 Baudrate
です。
なぜ4098なのですか?このボーレートはどこにも見つかりません。
ボーレートを1800に設定すると、10になります。9600に設定すると、13になります。
いくつかの調査を行ったところ、ハードウェアがこの高いボーレートをサポートできない可能性がありますが、接続しようとしている同じデバイスと通信する同じコンピューター上にJavaプログラムがあります。だから私はこれがそのような場合ではないことを知っています。
誰かが何が起こっているのか、そしてそれを修正する方法を知っていますか?