我正在尝试在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我看到了,我担心你可能使用了允许二进制文字的编译器扩展。 –