《嵌入式系统》知识总结11:STM32串口

news/2024/10/11 11:17:55/

串行通信vs并行通信

• 并行:使用8根数据线一次传送一个字节(或使用16根数据线一次传送2个字节,...)
• 串行:使用少量数据信号线(8根以下),将数据逐位分时传送
• 并行vs串行:类似于多车道vs单车道

 通信特性对比

 • 在工作频率相同的情况下,并行通信的数据传输速率明显高于串行通信。(注意前提)
• 由于并行传输对同步要求较高,且随着通信速率的提高,信号干扰的问题会显著影响通信性能。随着技术的发展,越来越多的应用场合采用高速率的串行差分传输。

接口举例

并行接口举例:
Centronics打印接口、PATA硬盘接口、AT键盘接口
串行接口举例:
Ps/2接口、usb接口、SATA硬盘接口、I2C接口、SPI接口

STM32的串行通信接口USART

STM32具有多达5个USART接口
• USART1连接高速APB2总线、运行速度为72MHz(支持高达4.5Mbps的传输速率)
• 其他位于APB1总线、36MHz(2.25Mbps传输速率)
STM32的USART接口具有多种操作模式
• 异步全双工通信、同步单路通信和半双工单线通信
• 支持LIN、智能卡、IrDA、多处理器通信
每个USART接口具有两个DMA通道
• 用于接收Rx和发送Tx数据与存储器之间的高速传送

USART的增强功能

局部互联网络LIN(Local Interconnection network)
• 主要针对车辆中低成本的LIN总线
智能卡(Smart Card)
• 内嵌芯片的集成电路(IC)卡
• 兼容ISO 7816-3标准的异步智能卡协议
红外线接口IrDA(Infrared Data Association)
• 短距离、点对点直线数据传输
• 支持SIR ENDEC传输编码解码协议


串口功能框图讲解

 接收发送数据过程

接收数据过程:
由Rx接收数据,根据波特率按位写入”接收移位寄存器”,待接收完毕后一次性写入”接收数据寄存器(RDR)”,CPU读取寄存器获取传输的数据
发送数据过程:
由CPU写数据到”发送数据寄存器(TDR)”,再由TDR一次性将要发送的数据写入”发送移位寄存器”,按照波特率逐位移出 

波特率控制

 如图:
发送控制器和接收控制器分别控制发送移位寄存器和接收移位寄存器

发送器时钟和接收器时来自同一个时钟单元发送和接收控制器的波特率公用波特率发生器

接收器时钟产生

 

STM32F103共5个串口:
        串口1时钟来自PLCK2
        串口2-5时钟来自PLCK1

例如:串口1的时钟由PCLK2经过/USARTDIV(分频)得到,而分频由波特率发生器控制,通过相关寄存器进行配置

USART接口的引脚

USART接口通过3个引脚连接外设
• Tx 发送数据输出(Transmit Data Out)
• Rx 接收数据输入(Receive Data In)
• CK 发送时钟输出,用于同步传输模式(CK引脚早期版本被称为SCLK)

实现硬件流程控制需要如下引脚
• nCTS 清除发送(Clear To Send)
• nRTS 发送请求(Request To Send)
硬件流控具体表现为:当串口已经准备好接收新数据时,由硬件自动把RTS脚拉低(向外表示可接收数据);在发送数据前,由硬件自动检查CTS脚是否为低(表示是否可以发送数据),再进行发送。

 USART寄存器

波特率的计算方法

波特率由波特率发生器和PCLKx共同产生 PCLKx的值由
串口本身决定,通过配置USART_BRR寄存器确定波特率发生器的值,经过USARTDIV分频器除以16得到最终的波特率

USARTDIV:无符号的定点数
FCK:串口的时钟,注意区分APB2和APB1两条总线

波特率计算举例

设置串口1波特率为115200
串口1的时钟来自PCLK2=72MHz
由公式得到:
USARTDIV=72000000/(115200*16)=39.0625
整数部分DIV_Mantissa=39=0x27
小数部分DIV_Fraction=16*0.0625=1=0x01
所以设置USART->BRR=0x0271,就可以实现设置串口1的波
特率为115200

USART操作相关数据结构和库函数

USART初始化结构体

typedef struct
{
uint32_t USART_BaudRate; //波特率 BRR
uint16_t USART_WordLength; //字长 CR1_M
uint16_t USART_StopBits; //停止位 CR2_STOP
uint16_t USART_Parity; //校验控制 CR1_PCE、CR1_PS
uint16_t USART_Mode; //模式选择CR1_TE、CR1_RE
// 硬件流选择 CR3_CTSE、CR3_RTSE
uint16_t USART_HardwareFlowControl;
} USART_InitTypeDef;

USART编程常用固件库函数

1-串口初始化函数

void USART_Init
(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)

USART初始化

//USART初始化函数
void USART_Init ( USART_TypeDef * USARTx,
USART_InitTypeDef * USART_InitStruct)//USARTx(要配置的串口):USART1~UART5
// USART_InitStruct指向USART_InitTypeDef结构变量的指针typedef struct
{ uint32_t USART_BaudRate; /* 通信波特率 */
uint16_t USART_WordLength; /* 数据位数 */
uint16_t USART_StopBits; /* 停止位数 */
uint16_t USART_Parity; /* 校验模式 */
uint16_t USART_Mode; /* 接收发送模式 */
uint16_t USART_HardwareFlowControl;/* 硬件流控制 */
} USART_InitTypeDef;

2-中断配置函数

void USART_ITConfig
(USART_TypeDef* USARTx, uint16_t USART_IT,FunctionalState NewState)

3-串口使能函数

void USART_Cmd(USART_TypeDef* USARTx,FunctionalState NewState)

4-数据发送函数

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)

5-数据接收函数

uint16_t USART_ReceiveData(USART_TypeDef* USARTx)

6-中断状态位获取函数

ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT)

USART库函数列表

 


http://www.ppmy.cn/news/230146.html

相关文章

深度解析MethodHandle方法句柄之findspecial方法的原理

网上看过太多关于MethodHandle方法句柄的文章,但是基本上没有人能把其中的findspecial方法讲清楚,特别是findspecial的第四个参数specialCaller, 相信大家都不明白是干嘛用的,网上给出的水文是很多都是说: 执行到specialCaller的父…

源泉设计cad插件下载 | 含源泉cad插件使用教程

源泉设计cad插件(源泉建筑与装饰设计CAD工具箱) 是一款完全免费高效的专业cad插件,该建筑与装饰绘图辅助软件旨在于为用户打造了一个简单易用快捷而强大的制图环境,强化了Autocad“文字处理、尺寸标注、图层管理、编辑与绘图”等方面的基本功能&#xff…

cad java web_【浩辰CAD和锐洋Java web打印控件哪个好用】浩辰CAD和锐洋Java web打印控件对比-ZOL下载...

浩辰CAD是完全自主内核的、国际领先的平台软件,经过近30年的持续研发和精益创新,深度兼容CAD文件格式,运行速度、稳定性等关键指标已超越国外竞争对手;创新功能超100种;从单一工具到协同设计,从PC软件到跨桌…

【CAD】CAD插件

文中提及所有插件都可在文末链接中获得 目录 Lockup插件 用途: 使用方法: 批量合并插件 用途: 使用方法: 超级强大的插件—贱人工具箱 用途: 使用方法: 想要插件的看过来! Lockup插件 …

cad记忆口诀_CAD的制图口诀

为了快速熟记一些知识, 我们通常都会选择一些朗朗上口的口诀帮助记忆。 还记得上小学时的 乘法口诀 加法口诀吗? 其实CAD也有口诀 你知道吗? 为了使机械、模具制图的爱好者 快速撑握机械制图的理论方法, 本文收集了一些快速撑握机械制图方法的口诀。 CAD制图口诀 一、三视图…

CAD特性窗口,快捷特性窗口等不显示图形类型问题

此问题为CAD缺失文件造成,将连接中的压缩包下载下来,解压后的文件复制粘贴到CAD根目录,重启CAD即可解决问题 文件下载链接:https://download.csdn.net/download/lvyiwuhen/10532278

CAD2019安装方法及步骤

CAD2019安装详细教程来啦,小宝贝们跟着我一步步的来操作吧,注意细节不要有遗漏,答题末尾会给小宝贝们提供CAD2019安装包及注册机,好了废话不多说开始装: 1、将压缩包解压出来打开下面这个文件夹,如图所示&a…

cad的计算机功能,走进CAD在线操作功能!

走进CAD在线操作功能! 2018-11-09 17:59:21 0点赞 0收藏 0评论 对于迅捷CAD官网的许多在线转换功能,想必有不少小伙伴都已经不陌生了,今天就带大家走进迅捷CAD官网在线操作功能是怎么使用的吧。 CAD在线看图 CAD看图是专门为工程人员设计的一…