精华内容
下载资源
问答
  • QT串口通信

    2016-02-06 01:23:41
    QT串口通信
  • Qt串口通信

    2017-10-24 09:52:42
    Qt 串口通信 自动启动 案例,Qt 串口通信 自动启动 案例
  • qt串口通信

    2015-08-11 13:52:11
    qt 串口通信 部分代码如下: myCom = new Win_QextSerialPort(QString("COM3"),QextSerialBase::EventDriven); if(!myCom ->open(QIODevice::ReadWrite)) return; ui->pushButton->setEnabled(false); myCom->...
  • 主要介绍了Qt串口通信开发之Qt串口通信模块QSerialPort开发完整实例(串口助手开发),需要的朋友可以参考下
  • Qt 串口通信

    2021-03-17 22:16:28
    这两天在帮小伙伴做项目,给我提了一个任务,就是用Qt做一个串口通信的上位机。研究了两天后,直接利用Qt封装了一个类。 关于串口通信协议,我就不多扯了,别人说的比我专业,我这里直接把我参考的作者的连结放在...

    这两天在帮小伙伴做项目,给我提了一个任务,就是用Qt做一个串口通信的上位机。研究了两天后,直接利用Qt封装了一个类。

    关于串口通信协议,我就不多扯了,别人说的比我专业,我这里直接把我参考的作者的连结放在这里,感兴趣的直接跳转过去就好了。

    《Qt实现串口通信(C++实现串口通信小助手)—串口收发及串口数据解码、串口通信模拟器。》

    如果你需要代码的话,直接拷贝复制到你的项目就可以用了,除了Qt的库以外没有用任何第三方库,所以应该很容易移植的。

    H文件部分

    #ifndef SERIALHELPER_H
    #define SERIALHELPER_H
    
    #include <QtSerialPort/QSerialPort>
    #include <QtSerialPort/QSerialPortInfo>
    
    class SerialHelper
    {
    private:
        QSerialPort serial;
    
    public:
        SerialHelper();
    
    public:
        void connect(QString portName, qint32 baudRate, QSerialPort::DataBits dataBits,
                     QSerialPort::StopBits stopBits, QSerialPort::Parity parity);
    
        void disconnect();
    
        bool connected();
    
        bool available();
    
        QSerialPort* getInstance();
    
        void send(QString msg);
    
        QString recv();
    
        QString errormsg();
    };
    
    #endif // SERIALHELPER_H
    

    C++ 文件部分

    #include "serialhelper.h"
    
    SerialHelper::SerialHelper() : serial()
    {
    
    }
    
    
    void SerialHelper::connect(QString portName, qint32 baudRate, QSerialPort::DataBits dataBits,
                 QSerialPort::StopBits stopBits, QSerialPort::Parity parity)
    {
        serial.setPortName(portName);
        serial.setBaudRate(baudRate);
        serial.setStopBits(stopBits);
        serial.setDataBits(dataBits);
        serial.setParity(parity);
    
        // connect to remote device via serial port
        serial.open(QIODevice::ReadWrite);
    };
    
    void SerialHelper::disconnect()
    {
        serial.clear();
        serial.close();
    };
    
    bool SerialHelper::connected()
    {
        return serial.isOpen();
    };
    
    bool SerialHelper::available()
    {
        return serial.isOpen() & serial.isWritable() & serial.isReadable();
    };
    
    QSerialPort* SerialHelper::getInstance()
    {
        return &serial;
    };
    
    void SerialHelper::send(QString msg)
    {
        serial.write(msg.toLocal8Bit());
    };
    
    QString SerialHelper::recv()
    {
        auto buf = serial.readAll();
        if (!buf.isEmpty())
        {
            QString msg = QString::fromLocal8Bit(buf); //支持中文显示
            buf.clear();
            return msg;
        } else {
            return "read data failed";
            buf.clear();
        }
    };
    
    QString SerialHelper::errormsg()
    {
        return serial.errorString();
    }
    

    你要做的就是拷贝以上两段代码,然后在下面做如下操作:

    	// 创建对象
    	SerialHelper helper;
    	
    	// 创建Serial的连结
    	helper.connect("COM", QSerialPort::Baud1200,
    			QSerialPort::Data8,
    			QSerialPort::OneStop,
    			QSerialPort::NoParity);
    	// 断开连结
    	helper.disconnect();
    	
    	// 收发数据
    	if (helper.available()) {
    		// 发送数据
    		helper.send("Hello world!");
    		...
    		// 接收数据
    		auto msg = helper.recv();
    		...
    	}
    

    大概就这么简单,好了,祝你顺利!

    展开全文
  • 主要介绍了Qt串口通信开发之QSerialPort模块Qt串口通信接收数据不完整的解决方法,需要的朋友可以参考下
  • Qt串口通信,代码与“Qt串口通信”相同,如果能够将“Qt串口通信”中的程序跑通可以不下载

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,285
精华内容 514
关键字:

qt串口通信