【嵌入式开发】UART

目录

一、概述

1.1 常见的通信类别/特点

1.2 常见几种通信

二、UART通信协议

2.1 UART通信介绍

2.2 UART通信协议

物理连接示意图:

三、STM32的UART接口

3.1 STM32的UART特点

3.2 STM32的UART框图分析

3.3 UART初始化步骤

3.4 STM32中UART使用


一、概述

        通信时需要关注 总线构成(硬件) 和 通信协议(软件)。

1.1 常见的通信类别/特点

        同步:指的是通信双方步调一致,一般需要通过时钟线连接双方的时钟。

        一方作为主机控制时钟(控制通信速度),另一方作为从机接收时钟。

        异步:通信双方的时钟是彼此独立的(也没有时钟线连接),一般需要使通信双方达到相同的速度。  即规定双方的波特率(bits / s)一致。

        串行:数据线只有1或2根,每次只能传输1位数据。

并行:数据线一般有8或16,每次可以传输多位数据。

        半双工:通信双方均可以给对方发送数据,但同一时间只能一方发送、另一方接收。

一般是因为数据线只有一组,所以同一时间,只有一方控制数据线。

        全双工:通信双方可以同时给对方发送数据,并同时接收对方发送的数据。一般是

        因为有多组数据线,所以同一时间,双方都可以控制自己发送数据的那组线。

1.2 常见几种通信

结合总线构成,判断其特点:

UART: Tx , Rx 异步、串行、全双工

IIC:  SCL , SDA 同步、串行、半双工

SPI:  SCK , MOSI , MISO 同步、串行、全双工

二、UART通信协议

2.1 UART通信介绍

        通用异步收发器UART(Universal Asynchronous Receiver/Transmitter),是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。

        一般将UART通信描述为异步串行通信,即串口通信,包括RS232、RS485、RS422、TTL等。 以上这些都属于串口通信,其区别是电平规范、硬件实现不同。

        所以若两个设备实现串口通信,但是由于硬件原因,使用了不同的电平规范,则需要在通信中使用电平转换芯片。例如有CH340芯片(TTL和USB电平转换),用于STM32芯片和电脑进行串口通信。

2.2 UART通信协议

        UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议中,信号线上的状态为高电平时代表‘1’,信号线上的状态为低电平时代表‘0’。由于异步通信两个uart设备之间通信的时候时钟线,这时候就需要在两个uart设备上指定相同的传输速率,以及空闲位、起始位、校验位、结束位,也就是遵循相同的协议。

        通信速度:双方一致即可,单片机中常用波特率 1200、2400、4800、9600、19200、38400、115200

        常用波特率一般有以下特点:能够用单片机波特率生成器生成,误差率小;在能接受的误差范围内,波特率较大。

        数据帧格式:一帧数据构成, 1位起始位 + 5~8位数据位 + 0~1位校验位 + 0.5/1/1.5/2位停止位

        起始位:1位低电平,标志一帧数据开始

        数据位:5~8位,传输的有效数据

        校验位:0~1位,无校验/奇校验/偶校验(数据位和校验位中逻辑’1’个数)

        停止位:0.5/1/1.5/2位高电平,标志一帧数据结束

        通信双方对一帧数据的规定必须一致。

        传输数据方向:先传送数据低位,一对一通信。

物理连接示意图

三、STM32的UART接口

3.1 STM32的UART特点

● 全双工异步通信

● 发送器和接收器具有单独使能位

● 传输检测标志:(标志一般对应外设寄存器中的某个位,通过这个位的状态 检测外设工作状态)

— 接收缓冲区已满

— 发送缓冲区为空

— 传输结束标志

● 奇偶校验控制:

— 发送奇偶校验位

— 检查接收的数据字节的奇偶性

● 十个具有标志位的中断源:

— CTS 变化

— LIN 停止符号检测

— 发送数据寄存器为空

— 发送完成

— 接收数据寄存器已满

— 接收到线路空闲

— 溢出错误

— 帧错误

— 噪声错误

— 奇偶校验错误

3.2 STM32的UART框图分析

3.3 UART初始化步骤

        1、将使用到GPIO引脚复用为相应的UART的Tx和Rx(引脚初始化)

        2、UART外设初始化(激活UART、数据帧设置、发送/接收器使能、UART使能),在stm32f4xx_rcc.c , stm32f4xx_gpio.c , stm32f4xx_usart.c 找到实现以上功能的函数

3.4 STM32中UART使用

        通过对数据寄存器进行写操作,控制发送的内容。当接收数据后,通过对数据寄存器及逆行读操作,读出接收的内容。发送和接收控制使能是独立的,但是发送和接收的速度是一致的实现UART通信时,也会有GPIO配置【GPIO是芯片和外界数据交流的唯一通道】由于此时相应的GPIO引脚需要作为另一片上外设UART的发送/接收引脚(Tx/Rx),故将相应的引脚配置为复用模式,且将之具体复用为相应UART的Tx和Rx。

注意:串口助手的设置,如波特率、停止位、数据位、校验位等,必须要和STM32程序中设置匹配。

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值