查看完整版本: [-- Qt5自带的QSerialbus类使用问题 --]

QTCN开发网 -> Qt基础编程 -> Qt5自带的QSerialbus类使用问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

search 2019-10-23 12:03

Qt5自带的QSerialbus类使用问题

现在通过自带的serialbus类使用ModbusRTU
  1. QT       += core gui
    QT       += serialbus serialport
目前问题是发出数据后一直没有完成信号,一直不执行read_ready函数,但是下位机使用modbuspoll测试过了正常收发。
  1. reply = client->sendReadRequest(data,1);
        if (reply)
        {
        if (!reply->isFinished())
        {
             connect(reply, &QModbusReply::finished, this, &learn::read_ready);
        }
现在运行后控制台只打印了发出的数据,没有打印返回的数据,也没提示超时接收
  1. qt.modbus: (RTU client) Sent Serial PDU: 0x0300000002
    qt.modbus.lowlevel: (RTU client) Sent Serial ADU: 0x010300000002c40b
想请问一下解决方法,程序是在windows平台运行的

search 2019-10-23 20:01
官方的文件里执行了信号与槽的连接,可是槽函数却不会执行
  1. m_serialPort = new QSerialPort(q);
            
            QObject::connect(&m_responseTimer, &Timer::timeout, q, [this](int timerId) {
                onResponseTimeout(timerId);
            });

            QObject::connect(m_serialPort, &QSerialPort::readyRead, q, [this]() {
                onReadyRead();
            });


zxwmail 2019-10-24 14:27
Qt自带的modbus通讯例子先看看,


查看完整版本: [-- Qt5自带的QSerialbus类使用问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled