STM32平台下对串行通信梳理

来源:互联网 发布:linux 线程等待 编辑:程序博客网 时间:2024/06/07 15:59
时间:2017/06/05
G15电装.王维鋆
每日一c梳理:http://blog.csdn.net/wangweijundeqq/article/details/72868608
计算机与外界的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种
一.并行通信概念及特点
1.所谓并行通信是指数据的各位同时在多根数据线上发送或接收
2.并行通的信特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难.
二. 串行通讯概念及特点
1.串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以.
2.在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信.
3.串行通信的特点:传输线少,长距离传送时成本低,但数据的传送控制比并行通信复杂.
三.异步通信与同步通信
异步通信:指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的时间间隔是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。如下图所示。


同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。以上图异步通信传输示意图做参考
四.串行通信的制式
单工:单向的(或者是收或者是发)
半双工:(串行通信)收/发不可同时进行
全双工:(串行通信)收/发可同时进行
如图所示:

传输速率:比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:
10位×240个/秒 = 2400 bps.
五.STM32的USART-串口通信
串口最基本的设置,就是波特率的设置。 STM32F429 的串口使用起来还是蛮简单的,只要
你开启了串口时钟,并设置相应 IO 口的模式,然后配置一下波特率,数据位长度,奇偶校验
位等信息,就ok了.
先来个火哥的串口历程图

从上图中,轻易的看出串口的步骤,总结下:
1) 使能 RX 和 TX 引脚 GPIO 时钟和 USART 时钟,基础操作。
2) 初始化 GPIO,并将 GPIO 复用到 USART 上,基础操作。
3) 配置 USART 参数;
4) 配置中断控制器并使能 USART 接收中断,基础操作。
5) 使能 USART;
其实通过这些的学习,我们可以总结出一个配置某项功能的基本步骤使能时钟——>配置端口----->查找相关寄存器,并按照需要配置.在结合参考手册和库开发手册,自己学习,比看视频效率高的多,也培养了自学能力.








原创粉丝点击