QT常见问题 串口stopbit为1.5时只能支持databit为8报错
环境
Windows 10
VS2019
QT5.14.2
复现
使用VS2019+QT编码
使用QT的Serialport打开串口并给串口的数据位和停止位赋初值,配置数据位(databit)为8位,同时配置停止位(stopbit)为1.5位
BUG
这时候编译器提示参数出错
原因
网上找到的原因:①Windows不支持该配置。MSDN中明确规定,数据位只能为5至8位。②当数据位为6、7、8位时,停止位只能配置成1或2位;同样当数据位为5位时,停止位只能为1或1.5位。
虽然按照上面说的可以解决问题,但我感觉没有回答到根本上,我查阅了相关资料,并没有得到一个太合理的解释,因此只能贴一些解释供参考。
停止位本身是一个位,所谓的0.5位、1.5位不是说把一位数据拆分开来了,而是表示停止位的维持时间。因此,0.5位表示停止位的维持时间为0.5个单位时间。例如你的波特率是1000bps,那么一个bit的宽度就是1ms,一个停止位就是1ms,而0.5个停止位就是0.5ms了。
解决
停止位1可对应数据位:5、6、7、8
停止位1.5可对应数据位:5
停止位2可对应数据位:6、7、8
按照上述对应问题解决
来自:九七的QT常见问题集锦(转载请注明出处)