QT制作简易串口调试助手
生活随笔
收集整理的這篇文章主要介紹了
QT制作简易串口调试助手
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- QT制作簡易串口調試助手
- 0 簡介
- 1 界面制作
- 2 邏輯實現
- 2.1 添加與可用串口信息有關的類的準備
- 2.2 讀取可用串口并添加到控件
- 2.3 打開串口
- 2.4 關閉串口
- 2.5 串口收發數據
- 2.6 清空接收框
- 3 打包發布
- 3.1 切換到release模式并編譯
- 3.2 完善一些信息(如改圖標)
- 3.3 封包
QT制作簡易串口調試助手
0 簡介
- 本次實驗涉及的QT基礎: 信號和槽基本原理 常用控件使用 布局設置
- 本次實驗借鑒了網上各種資料以及查閱了相關串口類的官方文檔
- 本文只提示了最基礎的功能,全面了解請自行參考各種資源
- 本次實驗源碼資源
1 界面制作
常用的控件及屬性設置,界面布局
2 邏輯實現
2.1 添加與可用串口信息有關的類的準備
2.2 讀取可用串口并添加到控件
QStringList serialName; foreach (const QSerialPortInfo& info, QSerialPortInfo::availablePorts()) {serialName << info.portName(); } ui->serial_comboBox->addItems(serialName);2.3 打開串口
//測試 mySerialPort->setPortName(ui->serial_comboBox->currentText()); //這個容易遺忘 mySerialPort->setBaudRate(QSerialPort::Baud4800); mySerialPort->setDataBits(QSerialPort::Data8);//根據MCU來選擇,一般是8 這個關系到串口是否成功打開 mySerialPort->setStopBits(QSerialPort::OneStop); mySerialPort->setParity(QSerialPort::NoParity); mySerialPort->setFlowControl(QSerialPort::NoFlowControl);if (mySerialPort->open(QIODevice::ReadWrite))//判斷是否成功打開,很重要QMessageBox::information(this, "提示", "打開成功!"); elseQMessageBox::critical(this, "提示", "打開失敗!");2.4 關閉串口
mySerialPort->close();2.5 串口收發數據
串口接收
connect(mySerialPort, SIGNAL(readyRead()), this, SLOT(readyRead_slots())); //串口read的connectvoid Widget::readyRead_slots() {QString buf;buf = QString(mySerialPort->readAll());//buf = mySerialPort->readAll().toHex(); //16進制顯示//ui->receive_plainTextEdit->appendPlainText(buf);ui->receive_plainTextEdit->insertPlainText(buf); //沒有換行ui->receive_plainTextEdit->moveCursor(QTextCursor::End);//及時更新內容 }串口發送
void Widget::on_send_pushButton_clicked() {mySerialPort->write(ui->send_textEdit->toPlainText().toLocal8Bit().data()); }2.6 清空接收框
void Widget::on_clear_pushButton_clicked() {ui->receive_plainTextEdit->clear(); }3 打包發布
3.1 切換到release模式并編譯
3.2 完善一些信息(如改圖標)
更改圖標步驟
在此目錄下添加一個ico文件
在pro中加入代碼,并編譯,發現此目錄下圖標改變了
3.3 封包
找到用于封包的控制臺
新建一個文件夾并且把相應目錄下的exe文件拷貝進去
使用剛剛打開好的控制臺,并且進入剛剛創建的文件夾
使用命令 windeployqt + 名稱.exe 基本結束,此方法簡單但是文件很大,其他方法可百度
總結
以上是生活随笔為你收集整理的QT制作简易串口调试助手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔塔之拯救白娘子~我的第一个VB6+DX
- 下一篇: java2d游戏引擎_2 - Java2