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代表操作的引脚号。

浙公网安备 33010602011771号