Qt串口通信


1. Qt串口通信類QSerialPort

在Qt5的的更新中,新增了串口通信的相關接口類QSerialPort,這使得在開發者在使用Qt進行UI開發時,可以更加簡單有效地實現串口通信的相關功能。
開發者可以簡單地通過#include<QSerialPort>,來使用系統包含的庫函數。然而這里有一個非常容易忽略的問題,會導致編譯時的報錯。在使用QSerialPort類之前,需要在Qt的配置文件即.pro文件中添加Qt += serialport

2. 代碼示例

a. 串口的初始化:

QSerialPort *serial = new QSerialPort();
QObject::connect(serial, SIGNAL(readyRead()), this, SLOT(recSerialData())); // 連接串口收到數據事件與讀取數據函數
serial->setPortName("COM3");
serial->setBaudRate(QSerialPort::Baud9600);
serial->setParity(QSerialPort::NoParity);
serial->setDataBits(QSerialPort::Data8);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
if (serial->open(QIODevice::ReadWrite)) {
    qDebug()<<"open success";
} else {
    qDebug()<<"open failed";
}

b. 向串口發送數據

serial->write("test");

c. 接收串口返回的數據

void MySerial::recSerialData()
{
    QByteArray ba;
    ba = serial->readAll();
    display(ba);
}
3. 總結

總的來說,使用Qt5進行串口通信是較為簡單的。大致步驟為:配置串口參數->打開串口->收發數據。

4. 附錄(Mac下的串口使用Tip)

在Mac下使用串口,基本流程和步驟同Windows差異不是很大,但是有一些細節,還是想逼叨兩句,讓受到困擾的同志們少走彎路。
首先是串口驅動程序的下載和安裝CH341SER for Mac。在安裝完成后,由於OS X Yosemite10以后的版本,默認開機不加載第三方驅動程序,所以在驅動安裝完成后,需要在terminal中輸入sudo nvram boot-args=”kext-dev-mode=1來默認加載驅動程序。如果重啟開機后,在網絡設置中看到下圖中的“USB2.0”,那么證明你的Mac安裝串口驅動成功。
pic_usb

之后插入相應的設備,在terminal中輸入ls /dev/ | grep ch則可以看到設備的名稱,在串口初始化的步驟中進行更改serial->setPortName("your-port-name");,現在你就可以順利地使用Mac進行串口的相關操作了!
Mac串口通信參考資料:http://0xcf.com/2015/03/13/chinese-arduinos-with-ch340-ch341-serial-usb-chip-on-os-x-yosemite/


By tjt
2015.09.02


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM