嵌入式学习笔记-MCU阶段-DAY02串口
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高
1.什么串口??
数据按位传输的通信接口,我们都成为串口--USART UART SPI IIC......
我们今天学习的主要是USART(通用的同步异步收发器)和UART(通用的异步收发器)
同步:接收方和发送方使用相同的时钟信号
异步:接收方和发送方使用不同的时钟信号
串行通信:数据在传输的过程中是按位传输 spi iic 485(1200米) can
数据传输速度慢,传输距离远 usart(15米)
并行通信:数据在传输的时候,一次可以传输多位数据(8bit 16bit 24bit 64bit..... 8080)
数据传输速度块,传输距离近
单工通信:是指消息只能单方向传输的工作方式。例如遥控、遥测,
半双工通信:允许在两个方向上传输数据,即从A端发送数据到B端,或从B端发送数据至A端,但不能同时进行双向传输,方向的选择数据终端控制。
全双工通信:发送数据的同时也能够接收数据,两者同步进行
2.串口--USART介绍
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信
波特率:单位时间(秒)内传输数据的位数 9600
单位时间内传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,波特率即指一个单位时间内传输符号的个数。
2.1USART主要特性
● 全双工的,异步通信
● NRZ标准格式
● 分数波特率发生器系统 ─ 发送和接收共用的可编程波特率,最高达4.5Mbits/s
● 可编程数据字长度(8位或9位)--有效数据
● 可配置的停止位-支持1或2个停止位
● 单线半双工通信
● 可配置的使用DMA的多缓冲器通信 ─ 在SRAM里利用集中式DMA缓冲接收/发送字节
● 单独的发送器和接收器使能位
2.2功能描述:






2.3分数波特率的产生
常用波特率:9600 115200 38400.......

TX/RX波特率:9600 115200 38400......
fck:72MHZ
USARTDIV=72000000/(16*9600)
得到USARTDIV将正数部分和小数部分分开
最终再次整合保存到BRR寄存器中

校验:奇偶校验
校验主要用于检测数据再发送的过程中是否出现错误
奇校验:检测数据中1的个数是否为奇数个
偶校验:检测数据中1的个数是否为偶数个
使用奇校验:发送方1010 1010 1 接收方接收到数据之后,再次对10101010进行校验,得到一个校验码,和发送方对比。
当前测试例程的示意图:

数据发送接收示意图
串口整体框图
图片中阴影部分实际上是一个寄存器--USARTx_DR
只是在不通传输过程中,起到的作用不一样

printf函数的使用:

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)