目录
串口通讯(Serial communications):串口按位(bit)发送和接受字节。
modbus:一种串行通讯协议,已成为工业领域通讯协议得业界标准。是工业电子设备之家常用的连接方式
1.串口
1.1 串口的定于
串口(Serial port):也叫做串行通讯接口(通常指COM口),串口通信是指采用串行通讯协议在一条信号线上将数据一个比特一个比特地依次进行传输的通信模式。特点是通信线路简单,传送速度较慢。
1.2 串口的分类
串口按照电气标准及协议分为:
RS-232:标准串口,最长应串口通讯接口,传送距离位15m,最高速度为20kb/s
RS-422:最大传送距离为1219m,最大传送速度为10MB/S
RS-485:由422演变,最大传送距离为1219m,最大传送速度为10MB/S
1.3 串口的使用场景
1.4 串口通讯的参数
参数 | 含义 | 示例 |
端口 | 标识是哪个串口 | COM1、COM2 |
波特率 | 传输速率的参数,表示每秒传送的符号的个数 | 4800,9600,14000,28800,115200 |
数据位 | 当计算机发送一个信息包的实际位数,便准的ASCII码数是0-127(7位),扩展的ASCII码是0-255(8位) | 5,6,7,8 |
停止位 | 表示单个包的最后一位、表示传输的结束,并且提供计算机校正时钟同步的机会 | 1、1.5、2 |
奇偶校验 | 串口通讯中一种简单的检错方式 | 无、偶、奇、1、0 |
流控制 | 当接受端数据处理不过来时,就发出“不在接受”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据 | 无 硬件流控制RTS/CTS 软件流控制XON/XOFF |
1.5 如何查看串口
2 虚拟串口软件的使用
3.Qt串口编程项目搭建
QT5提供了serialport模块,方便编程人员快速的开发应用串口的应用程序,QSerialPort类是QT5封装的串口类,实现了串口通讯的功能,想使用模块,需在.pro文件中加入:
QT += serialport
需在.h文件中加入:
#include<QSerialPort>
QSerialPort常用方法:
成员方法 | 含义 |
setPortName | 设置端口名称 |
setBaudRate | 设置波特率 |
setDataBits | 设置数据位 |
setStopBits | 设置停止位 |
setParity | 设置奇偶校验 |
setFlowControl | 设置流控制 |
open | 打开串口 |
isOpen | 串口是否打开 |
close | 关闭串口 |
成员方法 | 含义 |
readyRead | 每次有新数据可用于从设备的当前读取通道读取时,都会发出一次该信号 |
bytesWritten | 每次将数据负载写入设备的当前写入通道时,都会发出信号 |
//连接信号和槽,
connect(&myserial,&qserialport::readyRead,this,&mainwindow::serialReadData)
connect(mySerialPort,&QSerialPort::bytesWritten,this,&MainWindow::bytesWriteData)
qtimer类简介:
提供了重复和单次触发信号的定时器
qtimer m_timer;
m_timer.strat(msec) ;
//定时器触发信号槽
connect(&m_timer,SIGNAL(timeout()),this,solt(timeout())):
qt中使用多线程
1.新建一个xxx类,公共继承自QObject,将线程要执行的内容 写在XXX类的某些槽函数中
2.创建一个Qthread对象t,调用start方法;
3.将xxx类的对象x.moveToThread(t);
4.使用信号槽机制触发XXX类的槽函数