【问题标题】:QSerialPort starts communication after to some data were transmittedQSerialPort 在传输了一些数据后开始通信
【发布时间】:2015-06-11 20:31:28
【问题描述】:

我正在尝试使用 QSerialPort 发送和接收一些串行数据,但这需要一点时间。所以我打开一个串行终端。 (终端 v1.93b - 20141030B)然后使用终端读取并发送数据,当我再次尝试使用我的应用程序时,它可以正确启动。

那么为什么在我打开串行终端并发送一些数据之后会发生这种情况,QSerialPort 工作正常。看起来我是否需要重置或刷新端口上的串行缓冲区。

【问题讨论】:

  • 你的串口连接了什么?您正在使用 QSerialPort 类打开某个 COM 端口,当您使用终端打开该连接的另一端时,您可以来回获取数据。所以对我来说,这说明你试图连接的任何东西都没有响应,或者没有正确配置。大多数情况下,这是由于波特率不正确造成的。

标签: qt serial-port buffer serial-communication


【解决方案1】:

尝试打开串口后调用clear()函数,或者每次发送数据后调用flush()函数。

bool QSerialPort::clear(Directions directions = AllDirections)
bool QSerialPort::flush()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多