Qt - 设置自定义波特率

Qt - Setting a custom baud rate

我正在尝试使用 Qt 在 Linux 上为我的设备设置 10400 的自定义波特率。但是,当我 运行 应用程序时,控制台输出一直报告

Baud rate of serial port /dev/ttyUSB0 is set to 10403 instead of 10400: divisor 2307.692383 unsupported

我还将数据位设置为 8,奇偶校验设置为无奇偶校验,停止位设置为 1,这是非常标准的。

顺便说一句,这是我的代码:

serial -> setBaudRate(10400); // Set Baud Rate
serial -> setDataBits(QSerialPort::Data8);  
serial -> setStopBits(QSerialPort::OneStop);
serial -> setParity(QSerialPort::NoParity);

然而,当我 运行 Windows 上的应用程序时,它工作得很好。

我的设备无法以 10400 以外的任何其他波特率连接。应用程序能够编译和 运行,但结果都是垃圾。我想知道是否有一种方法可以毫无问题地指定此波特率?

这是一个警告;这意味着您应该修复代码,但代码仍然可以正常工作。 运行 所使用的硬件不支持您尝试执行的操作。 Windows只是比较安静,也不支持。

相关错误报告here。基本上这意味着,确切的波特率不可用,因为配置到硬件的实际东西是某个时钟频率的 整数 除数,并且请求的波特率没有精确的整数除数速度。警告消息对此进行了很好的描述。

没关系,波特率有一定的公差,但如果它确实导致问题(bug 下的讨论表明它可能...),bug 报告中建议升级到 Qt 5.6 .