QSerialPort-Qt串口通讯
本文标题:QSerialPort-Qt串口通讯 本文地址:http://techieliang.com/2017/12/534/
1. 介绍
Qt对串口通讯提供了专用类QSerialPort,需要在pro文件增加:QT += serialport,其继承自QIODevice
相关类还有QSerialPortInfo 提供当前设备串口信息
2. QSerialPortInfo
QSerialPortInfo::availablePorts();
可以获取当前设备的所有串口信息,提供了以下操作函数,可获得对应的信息类型。
- QString description() const
- bool hasProductIdentifier() const
- bool hasVendorIdentifier() const
- bool isBusy() const
- bool isNull() const
- QString manufacturer() const
- QString portName() const
- quint16 productIdentifier() const
- QString serialNumber() const
- void swap(QSerialPortInfo &other)
- QString systemLocation() const
- quint16 vendorIdentifier() const
portName一般为“COMX”;Description为描述信息;serialNumber为编号,此号一般不相同可用于串口设备识别。
3. QSerialPort
参考类帮助文档
相关串口配置函数:
- bool sendBreak(int duration = 0)
- bool setBaudRate(qint32 baudRate, Directions directions = AllDirections)
- bool setBreakEnabled(bool set = true)
- bool setDataBits(DataBits dataBits)
- bool setDataTerminalReady(bool set)
- bool setFlowControl(FlowControl flowControl)
- bool setParity(Parity parity)
- void setPort(const QSerialPortInfo &serialPortInfo)
- void setPortName(const QString &name)
- void setReadBufferSize(qint64 size)
- bool setRequestToSend(bool set)
- bool setStopBits(StopBits stopBits)
先配置完成后,调用open可开启串口
阻塞数据读写:
- virtual bool open(OpenMode mode)
- virtual bool waitForBytesWritten(int msecs = 30000)
- virtual bool waitForReadyRead(int msecs = 30000)
同时可以利用QIODevice类的readyRead信号,connect以后可在收到信息后在槽中响应,利用
- qint64 read(char *data, qint64 maxSize)
- QByteArray read(qint64 maxSize)
- QByteArray readAll()
读取内容。
串口可能在发送一串字符时每一个字符收到均有一次readyRead响应,此时需要自行判断终止符。
QSerialPort-Qt串口通讯的更多相关文章
- Qt之先用了再说系列-串口通讯(单串口单线程)
QT 串口通讯(单串口单线程) 串口通讯在我们写程序的时候或多或少会用到,借此在这记录一下QT是如何使用串口来通讯的.本次先侃侃在单线程下使用1个串口来通讯过程.好了,废话不多说,直接看步骤,我们的宗 ...
- 树莓派中QT实现串口通讯
树莓派中QT实现串口通讯 开发平台为QT 此博客QT使用的为WiringPi驱动 我使用的串口调试助手为 cutecom 先简单说一些开发过程中需要注意的问题 Linux 下设备为 tty ,对应在 ...
- Qt 串口类QSerialPort 使用笔记
Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供 ...
- qt实现串口通讯
摘要:上位机软件程序通过QT实现,采集输入信息,根据实际需要做出合适的串口通讯协议,实现效果如下图所示: 主要实现的功能: 1.串口基本参数可选,可调 2.显示区域可选择十六进制/asicii码显示, ...
- 【转】QT 串口QSerialPort + 解决接收数据不完整问题
类:QSerialPort 例程:Examples\Qt-5.9.1\serialport\terminal,该例子完美展示了qt串口收发过程,直接在这上面修改就可以得到自己的串口软件.核心方法 // ...
- 嵌入式Linux学习笔记(六) 上位机QT界面实现和串口通讯实现
目录 (1).参考资料 (2).QT界面布局实现 (3).数据和操作逻辑 在上一章我们实现了下位机的协议制定,并通过串口通讯工具完成了对设备内外设(LED)的状态修改,下面就要进行上位机软件的实现了( ...
- Qt 串口连接
Qt 串口连接 使用 Qt 开发上位机程序时,经常需要用到串口,在 Qt 中访问串口比较简单,因为 Qt 已经提供了 QSerialPort 和 QSerialPortInfo 这两个类用于访问串口. ...
- Qt 串口通信
在Qt5之前,串口通信基本依赖于第三方库,下面是我曾接触过的串口通信类库: 名称 语言 平台 QextSerialPort QT C++ Win/Linux http://sourceforge. ...
- Qt串口通信
1. Qt串口通信类QSerialPort 在Qt5的的更新中,新增了串口通信的相关接口类QSerialPort,这使得在开发者在使用Qt进行UI开发时,可以更加简单有效地实现串口通信的相关功能. 开 ...
随机推荐
- MySQL用全库备份数据恢复单表数据
备份数据库时,采用了全库备份,但是因为某些原因需要回滚一个表的数据到备份数据库上,如果回滚整个库就比较费时间,因为可能这个表只有几十M,但是其它表可能有十几上百G,这时候就需要将需要恢复的表提取出来了 ...
- hive错误排查一:hive中执行 drop table命令卡住,删除表不成功
起因 公司用的AWS EMR上的hive,突然不能删除表了. 经过 分析来看,估计是元数据那块出了问题.从元数据入手,元数据存在mysql的hive数据库中 直接使用hive配置文件hive-site ...
- 配置redis一直启动
1. 进入 DOS窗口 2. 在进入redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...
- R语言学习笔记(二十四):plyr包的用法
plyr 这个包,提供了一组规范的数据结构转换形式. Input/Output list data frame array list llply() ldply() laply() data fram ...
- 【8086汇编-Day2】dosbox实验环境配置及测试
我学习汇编用的是王爽的<汇编语言>第三版,书中是以8086处理器为例,是工作在实模式下的,而当下的个人电脑处理器都是工作在保护模式下的.所以需要一个虚拟的工作在实模式下的处理器,这里主要用 ...
- 201552-53 《Java程序设计》第三周问题汇总
201552-53 <Java程序设计>第三周问题汇总 1. 4.2 基本类型打包器理解不是很好,希望老师讲解一下. 2.vim中怎么用"yyp"复制上一行代码 在按E ...
- 20155234java实验一
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习Linux基础入门(新版))Vim ...
- MYSQL中日期与字符串间的相互转换
一.字符串转日期 下面将讲述如何在MYSQL中把一个字符串转换成日期: 背景:rq字段信息为:20100901 1.无需转换的: SELECT * FROM tairlist_day WHERE rq ...
- 快读板子fread
struct ios { inline char read(){ <<|; static char buf[IN_LEN],*s,*t; ,IN_LEN,stdin)),s==t?-:*s ...
- rem自适应布局
rem自适应原理 rem是根据html的font-size大小来变化,正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局.更多介绍请看这篇文章:rem是 ...