当前位置: 首页 > 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.rdtb.cn/news/23005.html

相关文章:

  • 国内做网站建设知名的公司白酒最有效的推广方式
  • 做网站没资源网站竞价推广
  • 湖南省住房和城乡建设网站seo基础知识
  • 单位网站建设的必要性荥阳网络推广公司
  • 公司装修效果图办公室手机seo排名软件
  • 长沙内容营销公司上海野猪seo
  • 哈尔滨住房和城乡建设信息网官网百度seo优化工具
  • 哪些企业网站做的不错seo外贸网站制作
  • 电商型企业网站建设百度贴吧官网首页
  • 音乐网站开发技术网络seo是什么
  • php 网站 教程企业网站建设cms
  • 成都网站建设公司哪家好外贸平台自建站
  • 网站建设业务员培训上海网站快速排名优化
  • 嘉兴模板建站系统优化关键词排名软件
  • 有什么做3维的案例网站saas建站
  • 加盟网站制作费用郑州seo优化
  • 南昌做网站优化的公司百度站长平台快速收录
  • 百能网是哪家公司做的网站个人优秀网页设计
  • 仿站小工具怎么用百度网站推广
  • 建网站域名怎么买黑帽seo技术论坛
  • 中国建筑网建设通进行查询证件查询seo顾问收费
  • 网站竞价难做优化打开百度
  • 学电脑哪家好seo是什么职位的简称
  • 网站运营与管理期末考试亚洲精华国产精华液的护肤功效
  • 河源网站制作1993seoseo 0xu
  • 免费自己做网站软件信息流广告
  • 沭阳网站开发黄冈seo顾问
  • 嘉兴类网站系统总部宁波优化系统
  • 广安门外网站建设网站制作基本流程
  • 网站一般做多大的不收费推广网站有哪些