stm32——端口复用

STM32端口复用配置详解
本文介绍了STM32的端口复用概念,强调了GPIO与内置外设功能引脚的复用关系,并以PA9和PA10配置为串口1为例,详细阐述了端口复用配置过程,包括GPIO端口时钟使能、外设时钟使能以及端口模式和复用配置等步骤。

端口复用是什么????????

stm32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。

也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。

例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。

端口复用配置过程——以PA9\

### 配置STM32F103RCT6微控制器的端口复用功能 #### GPIO概述 通用输入输出接口(General Purpose Input Output, GPIO)允许开发者通过编程控制外部设备。对于STM32系列单片机而言,GPIO提供了多种操作模式来适应不同的应用场景需求。 #### GPIO的工作模式 STM32F103RCT6支持8种基本工作模式[^1]: - 输入浮空 (Input Floating) - 输入上拉 (Input Pull-up) - 输入下拉 (Input Pull-down) - 复用推挽输出 (Alternate Function Push- 复用开漏输出 (Alternate Function Open Drain) - 推挽输出 (Push-pull Output) - 开漏输出 (Open-drain Output) - 模拟输入 (Analog Input) #### GPIO相关寄存器介绍 为了实现上述各种模式的功能切换以及状态读取等功能,每组I/O口中包含了多个重要的寄存器用于配置和管理这些引脚的行为: - **CRL/CRH**: 这些是配置寄存器,用来设置对应管脚的具体属性,比如速度、上下拉电阻等特性。 - **IDR**: 数据输入寄存器,反映当前实际电平情况。 - **ODR**: 输出数据寄存器,决定了该引脚要输出什么样的逻辑信号。 - **BSRR/BRR/LCKR**: 分别负责执行位带设定清除动作、单独清零某一位的操作还有锁定某些特定配置防止意外更改的作用[^2]。 #### 实现端口复用配置实例 当涉及到外设通信时,通常会使用到复用功能。下面是一个具体的例子——将PA9配置成USART1_TXD线路上使用的TX引脚: ```c #include "stm32f1xx_hal.h" void MX_GPIO_Init(void){ __HAL_RCC_GPIOA_CLK_ENABLE(); //使能GPIOA时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; /*Configure GPIO pin : PA9 */ GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // 设置为复用推挽输出模式 GPIO_InitStruct.Pull = GPIO_NOPULL; // 不启用内部上下拉电阻 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;// 设定高速度等级 HAL_GPIO_Init(GPIOA,&GPIO_InitStruct); // 初始化指定参数给选定的GPIO引脚 } ``` 这段代码展示了如何利用库函数`HAL_GPIO_Init()`完成对PA9引脚作为串行发送端(TX)用途下的初始化过程。这里选择了“复用推挽输出”的方式,并关闭了内置的上下拉机制以减少不必要的干扰;同时指定了较高的传输速率以便更好地满足实时通讯的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值