Qt学习笔记2—串口通信
来源:互联网 发布:js继承 编辑:程序博客网 时间:2024/05/22 05:17
http://blog.csdn.net/qq363692146/article/details/26049355
//只需要在程序mainwindow.cpp中添加即可 serial.setBaudRate(QSerialPort::Baud115200);
UI界面
//串口发送“Hello Zigbee”//mainwindow.cpp#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //serial.setBaudRate(QSerialPort::Baud115200); initSerialPort(); //}MainWindow::~MainWindow(){ serial.close(); //关闭串口 delete ui;}void MainWindow::serialRead(){ //声明一个QByteArray类的对象temp ,来获取serial串口所有的读取数据 QByteArray temp = serial.readAll(); QByteArray i,j; //定义i,j 目的是在两个textEdit分别显示串口数据 i = temp.mid(0,5); //i,通过temp.mid(0,5)截取从第0位开始,长度为5的数据;即Hello j = temp.mid(5,7); //ZigBee ui->textEdit->append(QString(i)); //在ui的textEdit中显示Hello ui->textEdit_2->append(QString(j));//显示ZigBee}//数据的写入。这是ui界面中pushButton按钮的槽函数,即转到槽,第一个void MainWindow::on_pushButton_clicked(){ if(ui->lineEdit->text().isEmpty()) //如果lineEdit的数据为空,则退出循环,退出该函数 return; //serial.write 写,toLatin1()可用于转换QString到QByteArray; serial.write(ui->lineEdit->text().toLatin1());}//void MainWindow::initSerialPort(){ //连接槽 connect(&serial,SIGNAL(readyRead()),this,SLOT(serialRead())); //将availablePorts 可用的端口信息,返回给infos QList<QSerialPortInfo> infos = QSerialPortInfo::availablePorts(); //如果没有串口插入,显示无效,并且return,退出函数。 if(infos.isEmpty()) { ui->comboBox->addItem("无效"); return; } //有串口插入则默认显示“串口” ui->comboBox->addItem("串口"); //foreach(variables ,container),在container里面按顺序遍历,给variables foreach(QSerialPortInfo info, infos) { ui->comboBox->addItem(info.portName());//添加显示串口号 //ui->comboBox->addItem(info.description()); }}//comboBox的槽函数,第三个。每次comboBox 选项的变化都将触发下面的槽函数,做出相应的操作//arg1为该选择的ComboBox选项名称void MainWindow::on_comboBox_currentIndexChanged(const QString &arg1){ serial.setBaudRate(QSerialPort::Baud115200);//设置波特率 QSerialPortInfo info; //定义info QList<QSerialPortInfo> infos = QSerialPortInfo::availablePorts(); int i = 0; foreach (info, infos) { if(info.portName() == arg1) break; //break 直接退出foreach循环 i++; } //我猜想 infos.size() 为0,当有串口插入时,i已经+1了。 if(i != infos.size()){//can find ui->label->setText("[已开启]"); serial.close(); //先关闭串口 serial.setPort(info); serial.open(QIODevice::ReadWrite); //读写打开 } else { serial.close(); ui->label->setText("[出错]"); }}
0 0
- Qt学习笔记2—串口通信
- qt串口通信学习笔记
- QT 串口通信2
- stm32学习笔记——串口通信
- STM32F103学习笔记——串口通信
- STM32学习笔记——串口通信
- Qt学习之路——— 串口通信总结
- C# 串口通信 学习笔记
- MFC学习笔记-串口通信
- 51单片机学习笔记【六】——串口通信实验
- STM32单片机学习笔记——USART串口通信
- 使用Energia开发MSP430 LAUNCHPAD学习笔记2--串口通信
- Qt网络通信学习笔记
- Qt串口通信专题
- 转:Qt串口通信
- QT串口通信
- QT串口通信
- qt 串口通信1
- UVa 11538(大白书105)象棋中的皇后(组合计数)
- Java设计模式
- 入门级dp2
- P1862
- SpringBoot+Mybatis整合报,service注入失败,dao注入失败,
- Qt学习笔记2—串口通信
- 【密码学】AES加密算法图解
- 1.创建多线程的两种方式
- Linux系统串口接收数据编程
- 笔记:Android用户界面--(二)
- 3.如何为Eclipse安装主题(Color Theme)
- Mode层
- Myeclipse 2015+ 破 解
- HTML5小标签补充