STM32-HAL库-GPIO的 API函数

给个三连,谢谢

一.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函数的一个总结

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值