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

悟空建站seo服务网站建设专家是干嘛的

悟空建站seo服务,网站建设专家是干嘛的,徐州网站开发服务,湘潭网站建设 搜索磐石网络Qt串口编程Serial Port 思维导图在线高清查看#xff1a;https://www.helloimg.com/i/2025/01/26/6796301b157a0.png 资源简介 出厂系统配置 正点原子的 I.MX6U 开发板的出厂系统中#xff0c;已经预先配置了两路串口 串口分配 调试串口 UART1#xff1a;这一路串口被…Qt串口编程Serial Port 思维导图在线高清查看https://www.helloimg.com/i/2025/01/26/6796301b157a0.png 资源简介 出厂系统配置 正点原子的 I.MX6U 开发板的出厂系统中已经预先配置了两路串口 串口分配 调试串口 UART1这一路串口被指定为调试用途对应于系统中的设备节点 /dev/ttymxc0 通用串口 UART3另一路串口是 UART3对应于系统中的设备节点 /dev/ttymxc2 编程限制 由于 UART1 已经被用作调试串口因此在编程时我们无法使用它只能选择对 UART3 进行编程 应用实例 使用串口需要在 pro 项目文件中添加串口模块的支持 项目文件文件第一行添加的代码部分如下 QT core gui serialport 添加的 serialport 就是串口模块的支持 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent nullptr); ~MainWindow(); private: /* 串口对象 */ QSerialPort *serialPort; /* 用作接收数据 */ QTextBrowser *textBrowser;/* 用作发送数据 */ QTextEdit *textEdit;/* 按钮 */ QPushButton *pushButton[2];/* 下拉选择盒子 */ QComboBox *comboBox[5];/* 标签 */ QLabel *label[5];/* 垂直布局 */ QVBoxLayout *vboxLayout;/* 网络布局 */ QGridLayout *gridLayout;/* 主布局 */ QWidget *mainWidget;/* 设置功能区域 */ QWidget *funcWidget;/* 布局初始化 */ void layoutInit();/* 扫描系统可用串口 */ void scanSerialPort();/* 波特率项初始化 */ void baudRateItemInit();/* 数据位项初始化 */ void dataBitsItemInit();/* 检验位项初始化 */ void parityItemInit();/* 停止位项初始化 */ void stopBitsItemInit();private slots: void sendPushButtonClicked(); void openSerialPortPushButtonClicked(); void serialPortReadyRead(); }; #endif // MAINWINDOW_H 声明需要用到的变量方法及槽函数 mainwindow.cpp #include “mainwindow.h” #include #include #include #include MainWindow::MainWindow(QWidget *parent) QMainWindow(parent) { /* 布局初始化 */ layoutInit(); /* 扫描系统的串口 */ scanSerialPort();/* 波特率项初始化 */ baudRateItemInit();/* 数据位项初始化 */ dataBitsItemInit();/* 检验位项初始化 */ parityItemInit();/* 停止位项初始化 */ stopBitsItemInit();} void MainWindow::layoutInit() { /* 获取屏幕的分辨率Qt官方建议使用这 * 种方法获取屏幕分辨率防上多屏设备导致对应不上 * 注意这是获取整个桌面系统的分辨率 */ QList QScreen * list_screen QGuiApplication::screens(); /* 如果是ARM平台直接设置大小为屏幕的大小 */#if arm /* 重设大小 / this-resize(list_screen.at(0)-geometry().width(), list_screen.at(0)-geometry().height()); #else / 否则则设置主窗体大小为800x480 / this-resize(800, 480); #endif / 初始化 */ serialPort new QSerialPort(this); textBrowser new QTextBrowser(); textEdit new QTextEdit(); vboxLayout new QVBoxLayout(); funcWidget new QWidget(); mainWidget new QWidget(); gridLayout new QGridLayout(); /* QList链表字符串类型 */ QList QString list1; list1串口号:波特率:数据位:检验位:停止位:;for (int i 0; i 5; i) {label[i] new QLabel(list1[i]);/* 设置最小宽度与高度 */label[i]-setMinimumSize(80, 30);/* 自动调整label的大小 */label[i]-setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);/* 将label[i]添加至网格的坐标(0, i) */gridLayout-addWidget(label[i], 0, i); }for (int i 0; i 5; i) {comboBox[i] new QComboBox();comboBox[i]-setMinimumSize(80, 30);/* 自动调整label的大小 */comboBox[i]-setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);/* 将comboBox[i]添加至网格的坐标(1, i) */gridLayout-addWidget(comboBox[i], 1, i); }/* QList链表字符串类型 */ QList QString list2; list2发送打开串口;for (int i 0; i 2; i) {pushButton[i] new QPushButton(list2[i]);pushButton[i]-setMinimumSize(80, 30);/* 自动调整label的大小 */pushButton[i]-setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);/* 将pushButton[0]添加至网格的坐标(i, 5) */gridLayout-addWidget(pushButton[i], i, 5); } pushButton[0]-setEnabled(false);/* 布局 */ vboxLayout-addWidget(textBrowser); vboxLayout-addWidget(textEdit); funcWidget-setLayout(gridLayout); vboxLayout-addWidget(funcWidget); mainWidget-setLayout(vboxLayout); this-setCentralWidget(mainWidget);/* 占位文本 */ textBrowser-setPlaceholderText(接收到的消息); textEdit-setText(www.openedv.com);/* 信号槽连接 */ connect(pushButton[0], SIGNAL(clicked()),this, SLOT(sendPushButtonClicked())); connect(pushButton[1], SIGNAL(clicked()),this, SLOT(openSerialPortPushButtonClicked()));connect(serialPort, SIGNAL(readyRead()),this, SLOT(serialPortReadyRead()));} void MainWindow::scanSerialPort() { /* 查找可用串口 */ foreach (const QSerialPortInfo info, QSerialPortInfo::availablePorts()) { comboBox[0]-addItem(info.portName()); } } void MainWindow::baudRateItemInit() { /* QList链表字符串类型 */ QList list; list“1200”“2400”“4800”“9600” “19200”“38400”“57600” “115200”“230400”“460800” “921600”; for (int i 0; i 11; i) { comboBox[1]-addItem(list[i]); } comboBox[1]-setCurrentIndex(7); } void MainWindow::dataBitsItemInit() { /* QList链表字符串类型 */ QList list; list“5”“6”“7”“8”; for (int i 0; i 4; i) { comboBox[2]-addItem(list[i]); } comboBox[2]-setCurrentIndex(3); } void MainWindow::parityItemInit() { /* QList链表字符串类型 */ QList list; list“None”“Even”“Odd”“Space”“Mark”; for (int i 0; i 5; i) { comboBox[3]-addItem(list[i]); } comboBox[3]-setCurrentIndex(0); } void MainWindow::stopBitsItemInit() { /* QList链表字符串类型 */ QList list; list“1”“2”; for (int i 0; i 2; i) { comboBox[4]-addItem(list[i]); } comboBox[4]-setCurrentIndex(0); } void MainWindow::sendPushButtonClicked() { /* 获取textEdit数据,转换成utf8格式的字节流 */ QByteArray data textEdit-toPlainText().toUtf8(); serialPort-write(data); } void MainWindow::openSerialPortPushButtonClicked() { if (pushButton[1]-text() “打开串口”) { /* 设置串口名 / serialPort-setPortName(comboBox[0]-currentText()); / 设置波特率 / serialPort-setBaudRate(comboBox[1]-currentText().toInt()); / 设置数据位数 / switch (comboBox[2]-currentText().toInt()) { case 5: serialPort-setDataBits(QSerialPort::Data5); break; case 6: serialPort-setDataBits(QSerialPort::Data6); break; case 7: serialPort-setDataBits(QSerialPort::Data7); break; case 8: serialPort-setDataBits(QSerialPort::Data8); break; default: break; } / 设置奇偶校验 / switch (comboBox[3]-currentIndex()) { case 0: serialPort-setParity(QSerialPort::NoParity); break; case 1: serialPort-setParity(QSerialPort::EvenParity); break; case 2: serialPort-setParity(QSerialPort::OddParity); break; case 3: serialPort-setParity(QSerialPort::SpaceParity); break; case 4: serialPort-setParity(QSerialPort::MarkParity); break; default: break; } / 设置停止位 / switch (comboBox[4]-currentText().toInt()) { case 1: serialPort-setStopBits(QSerialPort::OneStop); break; case 2: serialPort-setStopBits(QSerialPort::TwoStop); break; default: break; } / 设置流控制 */ serialPort-setFlowControl(QSerialPort::NoFlowControl); if (!serialPort-open(QIODevice::ReadWrite)) QMessageBox::about(NULL, “错误”, “串口无法打开可能串口已经被占用”); else { for (int i 0; i 5; i) comboBox[i]-setEnabled(false); pushButton[1]-setText(“关闭串口”); pushButton[0]-setEnabled(true); } } else { serialPort-close(); for (int i 0; i 5; i) comboBox[i]-setEnabled(true); pushButton[1]-setText(“打开串口”); pushButton[0]-setEnabled(false); } } void MainWindow::serialPortReadyRead() { /* 接收缓冲区中读取数据 */ QByteArray buf serialPort-readAll(); textBrowser-insertPlainText(QString(buf)); } MainWindow::~MainWindow() { } 界面布局初始化设置第29~121行 界面布局初始化设置第29~121行 使用垂直布局和网格布局 查找系统可用的串口第123~130行 查找系统中可用的串口 将串口名添加到 comboBox[0] 中 波特率初始化第132~144行 预设常用波特率默认选项为115200 添加波特率到 comboBox[1] 中 数据位项初始化第146~155行 设置默认数据位为8 校验位项初始化第157~166行 默认设置为无校验位 停止位项初始化第168~177行 默认停止位为1 发送数据第179~184行 点击发送按钮时触发发送数据操作 打开或者关闭串口第186~256行 按设置的项使用 Qt 串口提供的方法如 setDataBits(QSerialPort::DataBits) 等 按第188~239行步骤设置串口参数后即可打开或关闭串口 读取数据第258~263行 从缓冲区中读取数据 将读取的数据显示到 textBrowser 中 程序运行效果
http://www.hkea.cn/news/14279059/

相关文章:

  • 什么网站能代做预算网站维护企业
  • 东莞人才网站网站建设的实验原理和方法
  • 企业网站怎么做百度太原市城乡建设局网站
  • 佟年为韩商言做的网站搜狗推广开户
  • 一台服务器怎么做多给网站app开发价格表模板
  • 浙江专业做网站有关网页设计与网站建设的文章
  • 网站出租建设php 网站模板
  • 银川网站开发培训怎么制作糖葫芦教程
  • 做视频网站需要什么服务器南昌公司做网站
  • 做简单网站需要学什么软件有哪些内容网页版传奇推荐
  • 买个域名后怎么做网站我是做网站的 哪里有单接
  • 恒辉建设集团网站网站前瞻性_新流量机会内容建设分析
  • 广西贺州建设局网站哪里有免费的h5模板
  • 建筑模拟3正版下载河北百度seo软件
  • wordpress网站添加背景音乐橙色网站模板
  • 一流的医疗网站建设站长之家模板
  • 中国最好网站建设公司广州微信网站建设费用
  • 网站建设标准一辽宁seo
  • 网站建设合同封面模板下载蓝色大气企业网站
  • 泉山微网站开发wordpress 基础主题
  • 济南网站建设网站常州市建设工程管理中心网站
  • 网站开发能作为无形资产吗推动高质量发展心得体会
  • 桐城住房和城乡建设局网站3秒钟自动跳转网页
  • 上海住房和城乡建设部网站首页免费空间贴吧
  • 网站建设讨论会直接做的视频网站
  • 淘宝做网站的店微信制作小程序的软件
  • 网站开发网上宠物店管理系统福建设计网站
  • 网站建设的介绍信息流推广
  • 网站开发网站设计的标准绿色环保网站模板
  • 免费分站网站互联网专业