国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

itop4412開發(fā)板Qt串口編程-實現(xiàn)串口功能

發(fā)布時間:2021-4-15 10:43    發(fā)布者:落風
1.編輯工程文件(后綴為 .pro 的文件)在 QT += core gui 后添加 serialport。

2.自動獲取串口
使用 QSerialPortInfo:::availablePorts()獲取當前串口,該函數(shù)返回容器類 Qlist,用 Qt 定義的關鍵字 foreach 遍歷容器 Qlist 里的串口信息,并將串口信息放到 QStringList 的類對象 serialNamePort,顯示到 ui 的串口組件。
{
{
ui->setupUi(this);
QStringList serialNamePort;
//遍歷:availablePorts()返回的串口信息
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){
serialNamePort << info.portName();
}
ui->serialCb->addItems(serialNamePort);
}
編譯后點擊串口選擇框,會出現(xiàn)已經(jīng)連接的串口。

3.打開串口功能和屬性設置
步驟一:實例化串口類 QSerialPort 對象 serialPort,對串口的操作就是對 serialPort 對象的操作,調(diào)用QSerialPort 封裝的成員變量(屬性)和成員函數(shù)(功能)就能控制串口。
class Example : public QMainWindow
{
public:
.......... QSerialPort * serialPort;
.......... };
ui(new Ui::Example)
{
ui->setupUi(this);
......
serialPort = new QSerialPort;
...... }
步驟二:填充波特率,數(shù)據(jù)位,停止位,校驗位等屬性。獲取 ui 組件傳遞過來的串口信息,將串口屬性填充到 serialPort 對象。

步驟三:打開串口,判斷是否打開成功。
/*打開按鈕*/
void Example:n_openCb_clicked()
{
QSerialPort::BaudRate bauRate; //波特率
QSerialPort:ataBits dataBits; //數(shù)據(jù)位
QSerialPort::StopBits stopBits; //停止位
QSerialPort:arity checkBits; //校驗位
//設置波特率
if (ui->baudCb->currentText() == "4800" ) { bauRate = QSerialPort::Baud4800; }
else if(ui->baudCb->currentText() == "9600" ) { bauRate = QSerialPort::Baud9600; }
else if(ui->baudCb->currentText() == "115200") { bauRate = QSerialPort::Baud115200;}
//設置數(shù)據(jù)位
if (ui->dataCb->currentText() == "5") { dataBits = QSerialPort:ata5;}
else if(ui->dataCb->currentText() == "6") { dataBits = QSerialPort:ata6;}
else if(ui->dataCb->currentText() == "7") { dataBits = QSerialPort:ata7;}
else if(ui->dataCb->currentText() == "8") { dataBits = QSerialPort:ata8;}
//設置停止位
if (ui->stopCb->currentText() == "1" ) { stopBits = QSerialPort::OneStop; }
else if(ui->stopCb->currentText() == "1.5" ) { stopBits = QSerialPort::OneAndHalfStop; }
else if(ui->stopCb->currentText() == "2" ) { stopBits = QSerialPort::TwoStop; }
//設置校驗位
if(ui->checkCb->currentText() == "none" ) { checkBits = QSerialPort::NoParity; }
//填充串口對象的屬性值
serialPort->setPortName(ui->serialCb->currentText());
serialPort->setBaudRate(bauRate);
serialPort->setDataBits(dataBits);
serialPort->setStopBits(stopBits);
serialPort->setParity(checkBits);
//設置好屬性后打開串口
if(serialPort->open(QIODevice::ReadWrite) == true){
QMessageBox::information(this,"提示","成功");
}else{
QMessageBox::critical(this,"提示","失敗");
}
}
4.收發(fā)串口數(shù)據(jù)功能
讀數(shù)據(jù):每當數(shù)據(jù)流從串口到達系統(tǒng)一次,就會傳到 Qt 應用程序一次,readyRead 信號就會觸 發(fā) 一次,所以可以用前面章節(jié)講的信號和槽機制將 readyRead 信號和槽函數(shù)綁定,然后就可以在槽函數(shù)中讀取串口數(shù)據(jù)。槽函數(shù)中使用 readAll()讀取數(shù)據(jù),使用帶換行功能的 appendPlainText()顯示到 ui 的接收窗口。
//類中聲明槽函數(shù)
private slots:
void serialPortReadyRead_Solt(void);
//readyRead 信號和槽函數(shù)綁定
connect(serialPort,SIGNAL(readyRead()),this,SLOT(serialPortReadyRead_Solt()));
//讀串口
void Example::serialPortReadyRead_Solt(void)
{
QString buf;
buf = QString(serilaPort->readAll());
ui->recvEdit->appendPlainText(buf);
}
寫數(shù)據(jù):獲取 ui 界面填寫的信息,ui->sendEdit->text(),使用 QSerialPort 的成員函數(shù) write 將數(shù)據(jù)寫到
串口。
void Widget:n_sendBt_clicked()
{
serilaPort->write(ui->sendEdit->text().toLocal8Bit().data());
}
5.關閉串口功能
使用 QSerialPort 的成員函數(shù) close()關閉串口。
void Widget:n_closeBt_clicked()
{
serilaPort->close();
}
6.清空發(fā)送欄數(shù)據(jù)
調(diào)用 ui 組件 lineEdit 的成員函數(shù) clear 即可清空數(shù)據(jù)。
void Widget:n_clearBt_clicked()
{
ui->recvEdit->clear();
}
編譯測試,結(jié)果如圖:







本文地址:http://m.qingdxww.cn/thread-764761-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內(nèi)容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿(mào)澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 秋霞看片亚洲先锋一区 | 尹人综合网 | 国产真实伦对白全集视频 | 成人午夜网 | 国产精品国产三级国产专 | 欧美日一区二区三区 | 男人的午夜天堂 | 在线观看视频91 | 就操在线| 正在播放国产精品 | 91精品观看91久久久久久 | 国产精品毛片在线完整版sa | 四虎影院美女 | 麻豆影业| 777黄色 | 欧美日韩一区二区三区在线 | 国产欧美日韩免费一区二区 | 91se在线视频| 欧美一区二区三区视频在线观看 | 四虎影视院 | 精品三级在线观看 | 亚洲xx站| 久久官网 | 97视频在线观看免费播放 | 91午夜精品午夜剧场 | 中文国产成人精品久久一区 | 男女羞羞视频网站免费 | 免费看h网站 | 91网站免费在线观看 | 天天综合色天天综合色sb | 一级毛片特黄久久免费看 | 国产视频手机在线 | 四虎影院紧急入口 | 一区二区三区四区在线免费观看 | 黄色欧美视频 | 亚欧免费视频一区二区三区 | 97在线视频观看 | 免费看黄网站在线 | 成人午夜影视全部免费看 | 五月婷婷导航 | 在线观看日韩www视频免费 |