在计算机科学中,许多复杂的问题可以通过分层的手段来简化,而STM32标准库就是在寄存器和用户代码之间的软件层 对于一些常用的通讯方式,我们也可以用分层的方式来理解,即,将其简单地划分为物理层和逻辑 物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输 协议层主要规定通讯逻辑,统一收发双方的数据打包、解包等标准 5 P. I& t1 A8 D" _ 物理层 关于电平的标准,这里就不多说了,232电平是负逻辑的,也就是逻辑“1”的电**而比较低 RS232的信号线接口就是常说的DB9接口 DB9接口是分公母的,详见下图 RX、TX交叉相连 一般只使用 RXD、TXD 以及 GND 三条信号线,直接传输数据信号 串口数据包结构 串口通讯的数据包由发送设备通过自身的 TXD 接口传输到接收设备的 RXD 接口 由启始位、主体数据、校验位以及停止位组成 由启始位、主体数据、校验位以及停止位组成 串口数据包的结构如下图所示: 波特率异步通讯中由于没有时钟信号,所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,上图中用虚线分开的每一格就是代表一个码元 数据包的开始与停止标志串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑 “0”的数据位表示,而数据包的停止信号可由 0.5、1、1.5或 2 个逻辑“1” 的数据位表示,只要双方约定一致即可 有效数据在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为 5、6、7或 8位长 数据校验在有效数据之后,有一个可选的数据校验位。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无校验(noparity) 转载自:CodeForCoffee : C" R% s h- g# U" }! E$ ~+ O& O3 _& P4 A |