4、GPIO(下)

4 GPIO配置

4.1 GPIO配置步骤

1、使能GPIO时钟

2、设置工作模式:定义初始化结构体->设置结构体成员->调用初始化函数

3、设置输出状态(可选)

4、读取输入状态(可选)

4.2 主要函数介绍

__HAL_RCC_GPIOx_CLK_ENABLE():使能GPIO时钟,其中的x代表GPIO端口,在F1系列上可为A,B或C。

初始化结构体GPIO_InitTypeDef:用于定义GPIO引脚的全部参数,包含以下四个主要成员:

成员

类型

功能

可选值

Pin

uint32_t

指定配置引脚号

GPIO_PIN_0 ~ GPIO_PIN_15

Mode

uint32_t

配置引脚的工作模式

推挽输出:GPIO_MODE_OUTPUT_PP

开漏输出:GPIO_MODE_OUTPUT_OD

复用推挽:GPIO_MODE_AF_PP

复用开漏:GPIO_MODE_AF_OD

输入模式:GPIO_MODE_INPUT

模拟模式:GPIO_MODE_ANALOG

检测外部中断上升:GPIO_MODE_IT_RISING

检测外部中断下降:GPIO_MODE_FALLING

检测外部中断上下:GPIO_MODE_RISING_FALLING

检测外部事件上升:GPIO_MODE_EVT_RISING

检测外部事件下降:GPIO_MODE_EVT_FALLING

检测外部事件上下:GPIO_MODE_EVT_RISING_FALLING

Pull

uint32_t

配置上/下拉电阻

无上下拉:GPIO_NOPULL

上拉:GPIO_PULLUP

下拉:GPIO_PULLDOWN

Speed

uint32_t

设置输出模式下速度

低速(2MHz):GPIO_SPEED_FREQ_LOW

中速(25MHz):GPIO_SPEED_FREQ_MEDIUM

高速(50MHz):GPIO_SPEED_FREQ_HIGH

HAL_GPIO_Init():GPIO初始化函数,其函数原型为

void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);

其中第一个参数GPIOx代表需要初始化的GPIO端口,第二个参数GPIO_Init为配置好的GPIO_InitTypeDef结构体变量指针。

5 GPIO功能

5.1 GPIO功能函数

HAL_GPIO_ReadPin():该函数用于读取指定引脚当前电平状态,其函数原型为:

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

第一个参数GPIOx表示要读取的GPIO端口,第二个参数GPIO_Pin代表具体要读取的引脚号,该函数返回一个GPIO_PinState枚举类型反映引脚的电平状态,可选值有

GPIO_PIN_SET:高电平

GPIO_PIN_RESET:低电平

HAL_GPIO_WritePin():该函数用来设置或清除指定引脚的电平,其函数原型为:

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);

其中GPIOx代表要操作的GPIO端口,GPIO_PIN代表具体操作的引脚号,PinState表示要设置的电平状态。

HAL_GPIO_TogglePin():该函数用于将指定引脚的输出电平进行翻转,低电平会变为高,高电平则变低,函数原型为:

void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

GPIOx代表GPIO端口,GPIO_Pin代表操作的引脚号。

posted @ 2026-08-13 10:47  老鼠学32  阅读(0)  评论(0)    收藏  举报