我正在嘗試在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
我做了一些研究,發現suposidly硬件無法支持此高波特率,但我有一個Java程序在同一臺計算機與我正在嘗試連接的相同設備進行整流。所以我知道這不可能是這種情況。
有誰知道發生了什麼以及如何解決?
什麼是'B115200'? –
@phresnel它是波特率,如果你看這裏http://www.easysw.com/~mike/serial/serial.html那麼你會看到所有的波特率在使用termios – Skeith
之前都是B我看到了,我擔心你可能使用了允許二進制文字的編譯器擴展。 –