给个三连,谢谢
一.stm32f1xx_hal_gpio.c
1.初始化GPIO口配置——HAL_GPIO_Init()
//初始化 GPIO口配置
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
1.1输入参数(2个)
- GPIO_InitTypeDef(GPIO配置结构体)
- GPIOx(哪组IO端口):GPIOA 、GPIOB...
1.2返回值:
- 无
2.复位GPIO口配置到默认复位值——HAL_GPIO_DeInit()
//复位-GPIO口配置到默认复位值
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
2.1输入参数(2个)
- GPIOx(哪组IO端口) :GPIOA 、GPIOB...
- GPIO_Pin(具体哪个引脚): GPIO_PIN_0 ~ GPIO_PIN_15
2.2返回值
- 无
3.读取IO口电平状态——HAL_GPIO_ReadPin()
//读取IO口电平状态
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
3.1输入参数(2个)
- GPIOx(哪组IO端口) :GPIOA 、GPIOB...
- GPIO_Pin(具体哪个引脚): GPIO_PIN_0 ~ GPIO_PIN_15
3.2返回值
- GPIO_PIN_SET :高电平,数值1
- GPIO_PIN_RESET :低电平,数值0
//返回值
GPIO_PIN_SET //高电平,数值1
GPIO_PIN_RESET //低电平,数值0
3.3关联寄存器
寄存器 GPIOx_IDR 位15:0 相应引脚的输入数据
4.配置IO口电平状态——HAL_GPIO_WritePin()
// 配置IO口电平状态
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
4.1输入参数(3个)
- GPIOx(哪组IO端口) :GPIOA 、GPIOB...
- GPIO_Pin(具体哪个引脚): GPIO_PIN_0 ~ GPIO_PIN_15
- PinState(设置什么电平状态):
(1)GPIO_PIN_SET :高电平,数值1
(2)GPIO_PIN_RESET :低电平,数值0
//PinState(设置什么电平状态)
GPIO_PIN_SET //高电平,数值1
GPIO_PIN_RESET //低电平,数值0
4.2返回值
- 无
4.3关联寄存器
- 寄存器 GPIOx_BSRR 位15:0 BSy :置位 则 相应IO输出高电平
- 寄存器 GPIOx_BSRR 位位31:16 BRy :置位 则 相应IO输出低电平
5.翻转 IO口电平状态——HAL_GPIO_TogglePin()
// 翻转IO口电平状态,高到低,低到高
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
5.1输入参数(2个)
- GPIOx(哪组IO端口) :GPIOA 、GPIOB...
- GPIO_Pin(具体哪个引脚): GPIO_PIN_0 ~ GPIO_PIN_15
5.2返回值
- 无
5.3关联寄存器
- 寄存器 GPIOx_BRR 位15:0 BRy :原来是高电平 就 置位 则 相应IO输出低电平 实现翻转
- 寄存器 GPIOx_BSRR 位15:0 BSy :原来是低电平 就 置位 则 相应IO输出高电平 实现翻转
6.锁定 IO口的配置,直至下次复位——HAL_GPIO_LockPin()
//锁定IO口的配置,直至下次复位
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
6.1输入参数(2个)
- GPIOx(哪组IO端口) :GPIOA 、GPIOB...
- GPIO_Pin(具体哪个引脚): GPIO_PIN_0 ~ GPIO_PIN_15
6.2返回值
- HAL_OK :正确
- HAL_ERROR :错误
//返回值
HAL_OK //正确
HAL_ERROR //错误
6.3关联寄存器
- 关联寄存器:GPIOx_LCKR
7.外部中断服务函数——HAL_GPIO_EXTI_IRQHandler()
//外部中断服务函数
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
7.1输入参数(1个)
- GPIO_Pin(对应具体哪个中断线) :GPIO_PIN_0 ~ GPIO_PIN_15
7.2返回值
- 无
7.3回调函数被上方的 HAL_GPIO_EXTI_IRQHandler()函数回调
//回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
- 输入参数——GPIO_Pin(对应具体哪个中断线) :GPIO_PIN_0 ~ GPIO_PIN_15
- 返回值:无
二.stm32f1xx_hal_gpio_ex.c
1.配置哪个IO用于事件输出——HAL_GPIOEx_ConfigEventout()
//配置哪个IO用于事件输出
void HAL_GPIOEx_ConfigEventout(uint32_t GPIO_PortSource, uint32_t GPIO_PinSource);
1.1输入参数(2个)
- GPIO_PortSource(使用哪组IO端口) :
(1)AFIO_EVENTOUT_PORT_A
(2)AFIO_EVENTOUT_PORT_B
(3)AFIO_EVENTOUT_PORT_C
(4)AFIO_EVENTOUT_PORT_D
//GPIO_PortSource(使用哪组IO端口)
AFIO_EVENTOUT_PORT_A
AFIO_EVENTOUT_PORT_B
AFIO_EVENTOUT_PORT_C
AFIO_EVENTOUT_PORT_D
- GPIO_PinSource :AFIO_EVENTOUT_PIN_0 ~ AFIO_EVENTOUT_PIN_15
1.2返回值
- 无
1.3关联寄存器
- 寄存器 AFIO_EVCR 位6:4 PORT[2:0] 选择用于输出的端口
- 寄存器 AFIO_EVCR 位位3:0 PIN[3:0] 选择用于输出的引脚
2.使能 HAL_GPIOEx_ConfigEventout()配置好的事件输出
//使能 HAL_GPIOEx_ConfigEventout 配置好的事件输出
void HAL_GPIOEx_EnableEventout(void);
2.1输入参数
- 无
2.2返回值
- 无
2.3关联寄存器
- 寄存器 AFIO_EVCR 位7 EVOE :置位 允许事件输出
3.关闭 HAL_GPIOEx_ConfigEventout()配置好的事件输出
//关闭 HAL_GPIOEx_ConfigEventout 配置好的事件输出
void HAL_GPIOEx_DisableEventout(void);
3.1输入参数
- 无
3.2返回值
- 无
3.3关联寄存器
- 寄存器 AFIO_EVCR 位7 EVOE :清除不允许事件输出
结束语
以上就是对STM32-HAL库-GPIO-API函数的一个总结