Linux - 如何为连接的设备

时间:2016-07-18 19:09:18

标签: c++ linux qt baud-rate

我尝试将自定义波特率设置为10400到我连接的设备。我使用Qt Creator IDE与设备进行交互。但是,通过几种方法,我无法将波特率从9600更改,这是默认的波特率。

我已经尝试了QSerialPort::setBaudRate(),但由于没有支持的除数而失败了。我已经尝试了stty -F /dev/ttyUSB0 10400,但它返回的是无效参数。

我尝试使用freediag API以便将波特率设置为10400.但是,由于提供的文档很差,我不确定如何设置波特率。命令是IB 10,但我不知道在哪里执行此命令(可能在错误的目录中执行命令?)?

如果有任何替代解决方案,而不是我尝试的解决方案,请向我解释,因为我没有选择。

1 个答案:

答案 0 :(得分:1)

我假设您的设备是通过USB虚拟COM端口连接的。在此应用程序中,QSerialPort是USB上方的抽象层,因此尝试直接通过stty设置USB波特率将无效(如果可能的话 - USB是一个非常严格定义的协议)。

您要设置的是QSerialPort对象本身的波特率,正如您尝试的那样,但10400不是标准波特率。设备使用该波特率的可能性极小 - 请尝试使用值为14400的QSerialPort::setBaudRate()

您应该编辑您的帖子,其中包含有关您的设置的详细信息。设备的性质是什么?它是使用RS232,RS485还是其他一些串行协议?您是否有示例代码来验证您是否正确地与它通信,以及您在正确通信时期望的结果(在硬件或软件方面)?