我尝试将自定义波特率设置为10400到我连接的设备。我使用Qt Creator IDE与设备进行交互。但是,通过几种方法,我无法将波特率从9600更改,这是默认的波特率。
我已经尝试了QSerialPort::setBaudRate()
,但由于没有支持的除数而失败了。我已经尝试了stty -F /dev/ttyUSB0 10400
,但它返回的是无效参数。
我尝试使用freediag
API以便将波特率设置为10400.但是,由于提供的文档很差,我不确定如何设置波特率。命令是IB 10,但我不知道在哪里执行此命令(可能在错误的目录中执行命令?)?
如果有任何替代解决方案,而不是我尝试的解决方案,请向我解释,因为我没有选择。
答案 0 :(得分:1)
我假设您的设备是通过USB虚拟COM端口连接的。在此应用程序中,QSerialPort
是USB上方的抽象层,因此尝试直接通过stty
设置USB波特率将无效(如果可能的话 - USB是一个非常严格定义的协议)。
您要设置的是QSerialPort
对象本身的波特率,正如您尝试的那样,但10400不是标准波特率。设备使用该波特率的可能性极小 - 请尝试使用值为14400的QSerialPort::setBaudRate()
。
您应该编辑您的帖子,其中包含有关您的设置的详细信息。设备的性质是什么?它是使用RS232,RS485还是其他一些串行协议?您是否有示例代码来验证您是否正确地与它通信,以及您在正确通信时期望的结果(在硬件或软件方面)?