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

网站后台登陆素材百度官网推广

网站后台登陆素材,百度官网推广,门户系统大全,网站seo优化推广怎么做QT综合示例#xff1a;QT串口通信0、界面#xff1a;1、代码#xff1a;如果用qt写程序作为上位机#xff0c;然后通过和usb和下位机通信的时候#xff0c;就需要用到qt中的串口通信了。 0、界面#xff1a; 1、代码#xff1a; 1#xff09;.pro 添加#xff1a; … QT综合示例QT串口通信0、界面1、代码如果用qt写程序作为上位机然后通过和usb和下位机通信的时候就需要用到qt中的串口通信了。 0、界面 1、代码 1.pro 添加 QT serialport2主函数 main.cpp 添加 #include mywidget.h #include QApplicationint main(int argc, char *argv[]) {QApplication a(argc, argv);myWidget w;w.show();return a.exec(); } 3myWidget.h 添加 #ifdef WIN32 #pragma execution_character_set(utf-8) #endif#ifndef MYWIDGET_H #define MYWIDGET_H#include QWidget#include QSerialPort #include QSerialPortInfo#include QDebug #include QMessageBoxnamespace Ui { class myWidget; }class myWidget : public QWidget {Q_OBJECTpublic:explicit myWidget(QWidget *parent 0);~myWidget();void initUI();public slots:void receiveInfo();private slots:void on_m_OpenPortButton_clicked();void on_btn_Send_clicked();private:Ui::myWidget *ui;private:QStringList getPortNameList(); // 获取所有可用的串口列表QSerialPort* m_serialPort; // 串口类QStringList m_portNameList; // 端口名列表private:void sendInfo(char* info,int len);void sendInfo(QString info);void convertStringToHex(const QString str, QByteArray byteData);char convertCharToHex(char ch); };#endif // MYWIDGET_H4myWidget.cpp 添加 #include mywidget.h #include ui_mywidget.hmyWidget::myWidget(QWidget *parent) :QWidget(parent),ui(new Ui::myWidget) {ui-setupUi(this);m_serialPort new QSerialPort();this-setWindowTitle(QSerialPort);// 设置默认选项ui-m_OpenPortButton-setText(打开串口);ui-cBox_PortName-addItems(getPortNameList());ui-cBox_DataBits-setCurrentIndex(1);ui-cBox_BaudRate-setCurrentIndex(2); }myWidget::~myWidget() {delete ui;m_serialPort-close();delete m_serialPort; }// 1、获得有效串行端口 QStringList myWidget::getPortNameList() {QStringList m_serialPortName;foreach(const QSerialPortInfo info,QSerialPortInfo::availablePorts()){m_serialPortName info.portName();//QMessageBox::information(this,tr(提示),tr(serialPortName: %1).arg(info.portName()),QMessageBox::Ok);//qDebug()serialPortName:info.portName();}return m_serialPortName; }// 2、连接、断开 void myWidget::on_m_OpenPortButton_clicked() {if(m_serialPort-isOpen())//如果串口已经打开了 先给他关闭了{ // m_serialPort-flush(); // m_serialPort-clear();m_serialPort-close();}else{//当前选择的串口名字m_serialPort-setPortName(ui-cBox_PortName-currentText());//用ReadWrite 的模式尝试打开串口if(!m_serialPort-open(QIODevice::ReadWrite)){QMessageBox::warning(this,tr(提示),tr(串口打开失败!),QMessageBox::Ok);return;}// 串口设置m_serialPort-setFlowControl(QSerialPort::NoFlowControl); //无流控制// 1、波特率和读写方向switch(ui-cBox_BaudRate-currentIndex()){case 0:m_serialPort-setBaudRate(QSerialPort::Baud2400,QSerialPort::AllDirections);break;case 1:m_serialPort-setBaudRate(QSerialPort::Baud4800,QSerialPort::AllDirections);break;case 2:m_serialPort-setBaudRate(QSerialPort::Baud9600,QSerialPort::AllDirections);//9600 比特率break;case 3:m_serialPort-setBaudRate(QSerialPort::Baud19200,QSerialPort::AllDirections);break;case 4:m_serialPort-setBaudRate(QSerialPort::Baud57600,QSerialPort::AllDirections);break;case 5:m_serialPort-setBaudRate(QSerialPort::Baud115200,QSerialPort::AllDirections);break;default:break;}// 2、数据位switch(ui-cBox_DataBits-currentIndex()){case 0:m_serialPort-setDataBits(QSerialPort::Data6);//6 bit 数据位break;case 1:m_serialPort-setDataBits(QSerialPort::Data7);//7 bit 数据位break;case 2:m_serialPort-setDataBits(QSerialPort::Data8);//8 bit 数据位break;default:break;}// 3、停止位switch(ui-cBox_StopBits-currentIndex()){case 0:m_serialPort-setStopBits(QSerialPort::OneStop);//1 bit停止位break;case 1:m_serialPort-setStopBits(QSerialPort::OneAndHalfStop); //1.5 bit停止位break;case 2:m_serialPort-setStopBits(QSerialPort::TwoStop); //2 bitbreak;default:break;}// 4、校验位switch(ui-cBox_Parity-currentIndex()){case 0:m_serialPort-setParity(QSerialPort::EvenParity);break;case 1:m_serialPort-setParity(QSerialPort::OddParity);break;default:m_serialPort-setParity(QSerialPort::NoParity);break;}connect(m_serialPort,SIGNAL(readyRead()),this,SLOT(receiveInfo()));}ui-m_OpenPortButton-setText(m_serialPort-isOpen()?tr(关闭串口) : tr(连接串口));ui-m_OpenPortButton-setStyleSheet(m_serialPort-isOpen()?color: red;:color: black;); }// 3、信息接收 void myWidget::receiveInfo() {QByteArray info m_serialPort-readAll();//qDebug()receive info:info;if(!info.isEmpty()){QString str ui-textEdit_receive-toPlainText();strtr(info);ui-textEdit_receive-clear();ui-textEdit_receive-append(str);}info.clear();// QByteArray hexData info.toHex(); // //这里面的协议 你们自己定义就行 单片机发什么 代表什么 我们这里简单模拟一下 // if(hexData 0x10000) // { // //do something // } // else if(hexData 0x100001) // { // //do something // } }// 4、发送按钮 void myWidget::on_btn_Send_clicked() {m_serialPort-write(ui-textEdit_send-toPlainText().toLatin1()); }//写两个函数 向单片机发送数据: // 信息发送函数一 void myWidget::sendInfo(char* info,int len) {for(int i0; ilen; i){printf(0x%x\n, info[i]);}m_serialPort-write(info,len);//这句是真正的给单片机发数据 用到的是QIODevice::write 具体可以看文档 }// 信息发送函数二 void myWidget::sendInfo(QString info) {QByteArray sendBuf;if (info.contains( )){info.replace(QString( ),QString());//我这里是把空格去掉根据你们定的协议来}qDebug()Write to serial: info;convertStringToHex(info, sendBuf); //把QString 转换 为 hexm_serialPort-write(sendBuf); //这句是真正的给单片机发数据 用到的是QIODevice::write 具体可以看文档 }// 基本和单片机交互数据都是16进制的 // Qstring 转为16进制的函数 void myWidget::convertStringToHex(const QString str, QByteArray byteData) {int hexdata,lowhexdata;int hexdatalen 0;int len str.length();byteData.resize(len/2);char lstr,hstr;for(int i0; ilen; ){//char lstr,hstrstr[i].toLatin1();if(hstr ){i;continue;}i;if(i len)break;lstr str[i].toLatin1();hexdata convertCharToHex(hstr);lowhexdata convertCharToHex(lstr);if((hexdata 16) || (lowhexdata 16))break;elsehexdata hexdata*16lowhexdata;i;byteData[hexdatalen] (char)hexdata;hexdatalen;}byteData.resize(hexdatalen); }//另一个 函数 char 转为 16进制 char myWidget::convertCharToHex(char ch) {/*0x30等于十进制的4848也是0的ASCII值1-9的ASCII值是49-57所以某一个值0x30就是将字符0-9转换为0-9*/if((ch 0) (ch 9))return ch-0x30;else if((ch A) (ch F))return ch-A10;else if((ch a) (ch f))return ch-a10;else return (-1); }
http://www.yutouwan.com/news/375912/

相关文章:

  • 同里做网站wordpress附件图片
  • 开源建站系统有哪些h5个人网页制作
  • 建设电子商务网站的预期收益能在线做国二计算机题目的网站
  • 榆次建设局网站网站分页js
  • 东莞建设小学网站郑州网站建设gusai123
  • 成都响应式网站开发沈阳最新公告
  • 小何自助建站重庆专业网站推广
  • 定制衣服的厂家保定seo企业网站
  • 开发触屏版网站标签网页设计存在的问题及分析
  • ps网站设计与制作宁波装修公司
  • 做菠菜网站判多久利用js做简单的网站
  • 济南公司制作网站公司背景墙logo设计
  • 哪个网站专做进口商品的视觉比较好看的网站
  • 大连做网站仟亿科技电脑游戏网站建设
  • 域名可以永久买断吗wordpress 自动seo插件
  • 山东咕果做网站怎么样工信部网站备案多久
  • 网站内页检测网站ip域名查询
  • 阿里网站建设需要准备什么软件境外网站 icp备案
  • 自做网站需要多少钱提供郑州网站建设
  • 石狮网站建设价格网站建设硬件预算
  • 组工网站档案数字化建设高端定制外贸网站
  • 广州网络推广有限责任公司兰州网络推广优化网
  • 网站栏目规划叫什么网页编辑软件排行榜
  • 网站wap版影响权重么开小加工厂去哪接单子
  • 电子商务网站建设的步骤一般为(如何给网站数据备份
  • 工业园企业建设网站公司引流推广平台违法吗
  • 网站设计有限公司是干嘛的凡科门店通
  • 网站开发好学吗上海这边敲墙拆旧做啥网站的比较多
  • 网站建设开头哈尔滨阿城网站建设
  • 做店铺图片什么网站广州专业做网站的科技公司