C++中的串口通信没有Python方便的sarial库,须自己定义完成库调用。
本文主要教学简单的串口库编写及调用,并附全部代码及库文件。
建议自行编写库体会串口通信,并完成作业。
一、串口通信理论
(一)基本概念
1、数电基础
省流版:通信中串口发送的数据内容与格式编写需一定数电基础,稍作了解即可
(1)数制
指多位数码中每一位的构成方法以及从低位到高位的进位规则。
常用数制:十进制、二进制、八进制、十六进制等
(2)码制
用数字技术来处理和传输的以二进制形式表示数字、字母或特殊符号的系统。
用文字、符号或数码表示特定对象的过程称为编码。数字电路中常用的是二进制编码。N位二进制代码有2的N次方个状态,可表示2的N次方个对象。
2、通信基础
(1)并行串行
(2)异步同步
异步串行通信:异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。
同步串行通信:同步串行通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。
(3)单工双工
(二)串口概述
1、UART协议
(1)UART
Universal Asynchronous Receiver Transmitter 即 通用异步收发器,是一种通用的串行、异步通信总线 该总线有两条数据线,可以实现全双工的发送和接收 在嵌入式系统中常用于主机与辅助设备之间的通信
(2)UART帧格式
(3)硬件连接
TXD为发送端,RXD为接收端
(4)参数 波特率
用于描述UART通信时的通信速度,其单位为 bps(bit per second)即每秒钟传送的bit的数量
2、个人计算机中的串口
(1)USB串口
Universal Serial Bus(通用串行总线) 简称USB,是目前电脑上应用较广泛的接口规范,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等几家大厂商发起的新型外设接口标准。USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,最新USB2.0可达480Mbps;电缆最大长度5米,USB电缆有4条线,2条信号线,2条电源线,可提供5伏特电源,USB通过串联方式最多可串接127个设备;支持热插拔。
(2)虚拟串口
虚拟串口一般用来调试PC上位机软件和串口的通讯。在没有电控队友在身边时,我们需要知道我们发送过去了什么数据,即数据是否完整,数据传输的状态等,这时候我们就需要虚拟串口 即在mcu中直接虚拟一个串口,这样我们就可以使用串口助手直接查看该串口数据的收发情况。
虚拟串口及串口助手的下载使用可参考以下文章
二、代码_串口库
先编写串口库文件,