当前位置: 首页 > news >正文

郑州建设信息网简介seo人员是什么意思

郑州建设信息网简介,seo人员是什么意思,做的比较好的美食网站有哪些,网络设计行业是干什么的目录 1.1.1 添加库,添加类 1.1.2 定义串口 1.1.3 搜索串口 1.1.4 设置和打开串口 1.1.5 读取数据 1.1.6 发送数据 1.1.7 关闭串口 1.1.1 添加库,添加类 首先,QT5 是自带 QSerialPort(Qt5 封装的串口类)这个类的,使用时…

目录

1.1.1  添加库,添加类

1.1.2 定义串口

1.1.3  搜索串口

1.1.4 设置和打开串口

1.1.5 读取数据

1.1.6 发送数据

1.1.7 关闭串口 

 

1.1.1  添加库,添加类

首先,QT5 是自带 QSerialPort(Qt5 封装的串口类)这个类的,使用时需要在 pro 文件里面添加一行:

QT += serialport

加入下面两个文件:

#include <QSerialPort>
#include <QSerialPortInfo>

QT5 中,串口通信是借助一个 QSerialPort 的对象来实现的,在设置 QSerialPort 对象对串口的名称、波特率、 数据位、校验位、停止位等参数后,方能对串口进行读写。下面,我总结了一下借助 QSerailPort 对串口进行设 置、打开、读、写和关闭的过程。

1.1.2 定义串口

QSerialPort *uart;
uart = new QSerialPort(this);

1.1.3  搜索串口

//availablePorts 是返回当前系统所有能用的串口,返回值是一个容器//QList 是容器类,在此的容器里边装的是 QSerialPortInfoQList<QSerialPortInfo> info = QSerialPortInfo::availablePorts();for(int i=0; i<info.size(); i++){ui->uartNameCombo->addItem(info[i].portName()); //addItem 加入数据到下拉
菜单里}

1.1.4 设置和打开串口

void UiMain::on_openBtn_clicked()
{QString uartName;QSerialPort::BaudRate baudRate;QSerialPort::DataBits dataBit;QSerialPort::StopBits stopBit;QSerialPort::Parity parityBit;//currentText 是获取当前选中的名字uartName = ui->uartNameCombo->currentText();//波特率if(ui->baudrateCombo->currentText() == "9600"){baudRate = QSerialPort::Baud9600;
}else if(ui->baudrateCombo->currentText() == "115200"){baudRate = QSerialPort::Baud115200;}//数据位if(ui->databitCombo->currentText() == "5"){dataBit = QSerialPort::Data5;}else if(ui->databitCombo->currentText() == "6"){dataBit = QSerialPort::Data6;}else if(ui->databitCombo->currentText() == "7"){dataBit = QSerialPort::Data7;}else if(ui->databitCombo->currentText() == "8"){dataBit = QSerialPort::Data8;}//停止位if(ui->stopbitCombo->currentText() == "1"){stopBit = QSerialPort::OneStop;}else if(ui->stopbitCombo->currentText() == "1.5"){stopBit = QSerialPort::OneAndHalfStop;}else if(ui->stopbitCombo->currentText() == "2"){stopBit = QSerialPort::TwoStop;}//校验位if(ui->parityCombo->currentIndex() == 0){parityBit = QSerialPort::OddParity;}else if(ui->parityCombo->currentIndex() == 1){parityBit = QSerialPort::EvenParity;}else if(ui->parityCombo->currentIndex() == 2){parityBit = QSerialPort::NoParity;}//把参数设置到 uart 里uart->setPortName(uartName);uart->setBaudRate(baudRate);uart->setDataBits(dataBit);uart->setStopBits(stopBit);uart->setParity(parityBit);if(!uart->open(QIODevice::ReadWrite)){QMessageBox::critical(this, "fbi warnning", "打开失败");}else{QMessageBox::information(this, "提示", "打开成功");}

1.1.5 读取数据

串口在收到数据后,会将数据存入接收缓冲区。此时,我们可以通过 readAll()函数将接收缓冲区的数据读出 来。当串口的接收缓冲区有数据时,QSerilaPort 对象会发出一个 readyRead()的信号。因此,我们可以编写一个槽 函数来读数据。

connect(uart, SIGNAL(readyRead()), this, SLOT(slotUartReadyRead()));

 QString uartBuf;
//假如没收完断截的数据,就会一直触发槽函数,定时器会被一直重置,不会超时
//当断截数据发完了,定时器就没人重启了,就会超时,这个时候收到的数据就是完整的数据
//也就是说收到一个字节后,20ms 内没有再次收到数据,默认为一帧数据接收完成
void UiMain::slotUartReadyRead()
{timer->start(20); //重启定时器 20ms
uartBuf.append(uart->readAll()); //追加写入到 uartBuf 里
}//超时了,说明数据完成一帧数据
void UiMain::slotTimeout()
{timer->stop();QByteArray ba;ba = uartBuf.toUtf8();//QString(nRecv)不是强制转换//QString(nRecv)是会触发 QString 的构造函数,当然 QString(int)这种构造函数是没有
的,会报错
ui->recvEdit->appendPlainText(ba);
}

1.1.6 发送数据

使用write函数便可以把字节数组中的字节发送出去。

uart->write(buf.toUtf8()); //QString 转 char *的方法: buf.toLocal8Bit().data()

1.1.7 关闭串口 

串口不用时,可通过 close()函数将其关闭。

uart->close();

http://www.zhongyajixie.com/news/14434.html

相关文章:

  • 湘潭网站建设电话磐石网络创建网站的基本步骤
  • 织梦网站怎么做seo优化2024年8月爆发新的大流行病毒吗
  • 保山网站建设服务谷歌站长平台
  • 小学网站asp关键词出价计算公式
  • 老薛主机做电影网站前端开发培训机构推荐
  • 国外做外贸的网站搜索引擎优化关键词
  • html动态网站怎么做互联网关键词优化
  • 赤峰做网站开发好看的seo网站
  • 凡科做网站真的免费吗网站推广100种方法
  • 做韩国外贸网站百度提问登录入口
  • 大连手机模板建站淘宝关键词排名查询
  • 手机网站建设如何百家联盟推广部电话多少
  • 做接口的网站百度快速收录提交工具
  • 工信部网站备案怎么查询广东东莞今日最新消息
  • 做网站维护挣钱吗2022网络热词30个
  • 北京金方网站设计qq群推广拉人
  • 石家庄建设局曲靖seo
  • 深圳做网站的公司 cheungdom软文代写网
  • 东莞网站建设网络推广seo一般包括哪些内容
  • 网站服务器租用价格多少钱一年百度推广一个关键词多少钱
  • 动态网站建设百度人工客服
  • web前端是网站开发师吗百度官网电话客服24小时
  • 网站开发设计文员网络热词英语
  • 成都网站建设名录seo1视频发布会
  • 建筑人才网官湖南seo推广服务
  • 仿制网站的软件域名查询访问
  • 企业网站建设及运营现状分析百度网址大全免费下载
  • 企业门户网站的意义湖人最新消息
  • wdcp创建网站最好用的磁力搜索神器
  • 常州知名做网站服务培训如何优化网站