GPIO

1、void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
这个函数我们在stm32f4xx_hal_gpio.c文件中找到它的实体,可以很清楚的看到它的解释
(不过是英文,需要点英文基础,不过有不认识的单词可以自己使用工具去翻译),
这个函数主要用来初始化我们需要用到的引脚的工作模式,包括具体引脚的工作速度、是否复用模式、上下拉等等参数。

2、void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
这个函数的主要功能是将我们在HAL_GPIO_Init函数初始化之后的引脚恢复成默认的状态,即各个寄存器复位时的值。这个函数比较容易理解。

3、GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
这个函数主要功能是读取我们想要知道的引脚的电平状态、函数返回值为0或1。

4、void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
这个函数从字面意思来看就是给某个引脚写0或1,但是不要理解成,写1就是使能之类的意思,有些寄存器写1是擦除的意思,这一点要谨记。
例如函数输入的参数是GPIOA、GPIO_Pin_1和GPIO_PIN_SET,则GPIOA->BSRR=((uint32_t)0x0002U);
即把二进制数0000000000000010转换为32位数赋值给BSRR,对应的GPIO_Pin_1管脚置高;
例如函数输入的参数是GPIOA、GPIO_Pin_1和GPIO_PIN_RESET,则GPIOA->BSRR=((uint32_t)0x0002U<<16);
即把二进制数0000000000000010左移16位并转换为32位数赋值给BSRR,高16位对应的GPIO_Pin_1为1,对应管脚被清零,置低;

5、void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
这个函数用来翻转某个引脚的电平状态,用的最多的场合是LED灯的翻转,也就是LED闪烁。
例如函数的输入参数是GPIOA、GPIO_Pin_1,则GPIOx->ODR与0000000000000010进行异或操作,0^1 =1,1^1 =0,异或运算后,原来的对应位被翻转。

6、HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
这个函数看函数名称就是锁住的意思,比如说一个管脚的当前状态是1,读管脚值使用锁定,当这个管脚电平变化时保持锁定时的值。

7、void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
这个函数是外部中断服务函数,用来响应外部中断的触发,函数实体里面有两个功能,1是清除中断标记位,2是调用下面8要介绍的回调函数。
很好理解,我们学习51单片机的时候肯定用过中断服务函数。

8、void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
这个函数是中断回调函数,可以理解为中断函数具体要响应的动作。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖喱年糕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值