我正在尝试为连接的设备设置10400的自定义波特率。我正在使用Qt Creator IDE以便与设备进行交互。但是,通过几种方法,我无法将波特率从9600更改为默认波特率。
我尝试了QSerialPort::setBaudRate()
,但是由于除数不受支持而失败。我尝试了stty -F /dev/ttyUSB0 10400
,但是它作为无效参数返回。
我试图使用freediag
API来现在将波特率设置为10400。但是,由于提供的文档不多,所以我不确定如何设置波特率。该命令是IB 10,但是我不知道在哪里执行该命令(可能在错误的目录中执行该命令?)?
如果有除我正在尝试的解决方案之外的其他解决方案,请在我用尽所有选项时向我解释。
最佳答案
我假设您的设备通过USB虚拟COM端口连接。在此应用中,QSerialPort
是USB之上的抽象层,因此尝试通过stty
直接设置USB波特率将不起作用(如果可能的话-USB是一个非常严格定义的协议(protocol))。
您想要设置的是QSerialPort
对象本身的波特率,就像您尝试做的那样,但是10400不是标准波特率。设备极不可能使用该波特率-尝试使用值14400的QSerialPort::setBaudRate()
代替。
您可能应该使用有关设置的详细信息来编辑帖子。设备的本质是什么?它使用RS232,RS485还是其他串行协议(protocol)?您是否有示例代码来验证自己是否与之正确通信,以及正确通信后您期望得到什么结果(在硬件或软件方面)?
关于c++ - Linux-如何为连接的设备设置自定义波特率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38444257/