STM32学习笔记----串口通信

UART是一种通用异步收发传输器,用于全双工串行通信。通信涉及TTL和RS232电平标准,波特率定义了数据传输速率。数据帧包括起始位、数据位、校验位和停止位。USART功能包括双缓冲的读写单元、控制单元和波特率发生器。配置串口需启用硬件时钟、配置GPIO、设置参数、配置中断及启动串口工作。
摘要由CSDN通过智能技术生成

串口通信概述

UART(universal asynchronous receiver and transimitter)通用异步收发器,可以与外部设备灵活的进行全双工数据交换,串行通信一般是以帧格式传输数据,既一帧一帧的传送,每帧包含起始信号,数据信息,校验信息和数据信息等。
串口通信的物理层:
TTL标准:逻辑1为2.4V到5V,逻辑0为0V到5V
RS232标准:逻辑1:-15V到3V,逻辑0为3V到15V
可以看到,不同的电平标准对于电平有着不同的判断,单片机内部一般采用TTL电平,若单片机与采用其他电平标准的设备时,需要先进行电平准换,比如单片机与电脑进行通信时,需要进行USB转TTL芯片
串口通信的数据帧:
在这里插入图片描述

波特率:
数据通信的速率,每个时钟震荡周期将发送一位数据,在通信前双方需要约定好通信波特率。
起始位和停止位:
串口通信的一个数据包由起始信号开始,由停止信号结束,起始信号由一个逻辑0的数据位表示,而停止位可以由0.5,1或者2个逻辑1的数据位表示。
有效数据:
起始位后由有效数据,有效数据的长度常被约定为5,6,7,8位长。
数据校验:奇校验,偶校验,无校验

USART功能框图

在这里插入图片描述

功能引脚:RX为数据接收引脚,数据通过RX接收
TX为数据发送引脚,数据通过TX发送
读写单元:读写单元采用双缓冲的设计方式,数据首先被写入发送数据寄存器中,并检测数据移位寄存器状态,若数据移位寄存器为空,则立即将数据写入数据移位寄存器中,并由数据移位寄存器一位一位的发送出去,并将下一位数据写入数据寄存器中。若数据移位寄存器非空,则将数据保留在数据寄存器中,等待数据移位寄存器为空后执行上述过程。接收部分的寄存器设计也是类似的。采用双缓冲的设计方式是为了保证数据帧的连续性,减少数据帧之间的间隔,提高通信速率。
控制单元:控制单元分为发送控制,接收控制单元,和中断控制三部分。用于控制数据移位寄存器将数据一位一位的发送或接收,并设定通信的字长,停止位,校验位等。中断控制单元用于控制串口中断的发发生方式,一般采用接收到一个字节触发中断。
波特率发生器:将系统时间进行分频,产生通信时钟。
串口通信的配置方式:
1.使能USART与GPIO的硬件时钟
2.将GPIO配置为复用功能模式,并将GPIO与串口进行捆绑
3.配置串口基本参数:如波特率,停止位,字长等
4.配置串口中断触发方式:接收到一个字节触发中断并配置串口中断优先级
5.使能串口工作

代码

串口初始化
在这里插入图片描述
串口发送字符串:
在这里插入图片描述
串口接收以“#“结尾的字符串数据,并将其反发给PC:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值