【蓝桥杯嵌入式G4】第二章 stm32l0xx_hal_gpio.c的常见函数

本章将介绍几个在比赛中常见的函数,这几个函数都是非常简单,关系到led,按键,继电器等简单的外设。
第一节    hal_gpio_init
函数原型:
void hal_gpio_init(gpio_typedef  *gpiox, gpio_inittypedef *gpio_init);
函数解析:
这个是gpio的初始化的函数,这个函数主要用来初始化我们需要用到的引脚的工作模式,包括具体引脚的工作速度、是否复用模式、上下拉等等参数。
形参解析:
一共两名形参,该形参的具体功能如下:
gpio_typedef *gpiox:该形参是对gpio的类型的定义,比如:gpioa,gpioc等等。
gpio_inittypedef *gpio_init:该形参是对结构体gpio_inittypedef的指针的初始化,包含了外设gpio的配置信息,比如gpio引脚,模式,速度等等。该配置信息如下:(见stm32l0xx_hal_gpio.h)
返回值:
void函数无返回值。
第二节    hal_gpio_deinit
函数原型:
void hal_gpio_deinit(gpio_typedef  *gpiox, uint32_t gpio_pin);
函数解析:
该函数是承接hal_gpio_init函数的,将初始化之后的引脚恢复成默认的状态,即各个寄存器复位时的值。
形参解析:
一共两名形参,该形参的具体功能如下:
gpio_typedef *gpiox:该形参是对gpio的类型的定义,比如:gpioa,gpioc等等。
uint32_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
void函数无返回值。
第三节    hal_gpio_readpin
函数原型:
gpio_pinstate hal_gpio_readpin(gpio_typedef *gpiox, uint16_t gpio_pin);
函数解析:
该函数是gpio读函数,将gpio的电平状态读取出来,一般读取之后,就明白该gpio的状态了。
形参解析:
一共两名形参,该形参的具体功能如下:
gpio_typedef *gpiox:该形参是对gpio的类型的定义,比如:gpioa,gpioc等等。
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
如果读取到高电平,返回gpio_pin_set;如果是低电平,返回gpio_pin_reset。
第四节    hal_gpio_writepin
函数原型:
void hal_gpio_writepin(gpio_typedef *gpiox, uint16_t gpio_pin, gpio_pinstate pinstate);
函数解析:
该函数是gpio写函数,通过该函数操作gpio的状态。
形参解析:
一共三名形参,该形参的具体功能如下:
gpio_typedef *gpiox:该形参是对gpio的类型的定义,比如:gpioa,gpioc等等。
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
gpio_pinstate pinstate:该形参是对gpio引脚的电平状态的定义,如果是gpio_pin_set,那么对该gpio赋值为高电平;如果是gpio_pin_reset,那么对该gpio赋值为底电平。
返回值:
void函数无返回值。
第五节    hal_gpio_togglepin
函数原型:
void hal_gpio_togglepin(gpio_typedef *gpiox, uint16_t gpio_pin);
函数解析:
该函数是gpio引脚电平状态的翻转函数,通过该函数操作gpio的电平的状态的翻转。
形参解析:
一共两名形参,该形参的具体功能如下:
gpio_typedef *gpiox:该形参是对gpio的类型的定义,比如:gpioa,gpioc等等。
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
void函数无返回值。
第六节    hal_gpio_lockpin
函数原型:
hal_statustypedef hal_gpio_lockpin(gpio_typedef *gpiox, uint16_t gpio_pin);
函数解析:
该函数是gpio引脚电平状态的锁存函数,使用该函数之后,将锁定gpio的状态,写函数也无法改变,除非重置。
形参解析:
一共两名形参,该形参的具体功能如下:
gpio_typedef *gpiox:该形参是对gpio的类型的定义,比如:gpioa,gpioc等等。
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
由结构体hal_statustypedef(如下图,stm32l0xx_hal_def.h)可知,如果锁存成功,返回hal_ok(0x00u),如果失败,返回hal_error(0x01u)。
需要注意的是,只能返回这两种值,即使该寄存器有四个变量。为什么呢?仔细看hal_gpio_lockpin函数的最后看明白了。
第七节    hal_gpio_exti_irqhandler
函数原型:
void hal_gpio_exti_irqhandler(uint16_t gpio_pin);
函数解析:
外部中断服务函数,用来响应外部中断的触发。
形参解析:
一共一名形参,该形参的具体功能如下:
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
void函数无返回值。
第八节    hal_gpio_exti_callback
函数原型:
__weak void hal_gpio_exti_callback(uint16_t gpio_pin);
函数解析:
该函数是回调函数,说白了就是中断之后,需要什么功能,就写在这个函数里面。至于__weak,它是一个弱化标识,带有这个的函数就是一个弱化函数,就是你可以在其他地方写一个名称和参数都一模一样的函数,编译器就会忽略这一个函数,而去执行你写的那个函数。
形参解析:
一共一名形参,该形参的具体功能如下:
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
该函数无返回值。 
往期精彩
【1】开发板开奖通知
【2】【蓝桥杯物联网】第四章 点亮一个led
【3】【蓝桥杯物联网】第三章 stm32l0xx_hal_gpio.c的常见函数
【4】【蓝桥杯物联网】第一章 了解开发板
【5】蓝桥杯单片机文档教程免费下载
点个在看你最好看
原文标题:【蓝桥杯嵌入式g4】第二章 stm32l0xx_hal_gpio.c的常见函数
文章出处:【微信公众号:撞上电子】欢迎添加关注!文章转载请注明出处。

新型液态金属传感器助于新一代高效节能可穿戴设备的开发
华大智造2019测序技术白皮书发布,引领行业创新突破
一文了解变频器的工作原理
为啥CMOS反相器要优于NMOS反相器呢?
各国2020年自动驾驶汽车成熟度指数
【蓝桥杯嵌入式G4】第二章 stm32l0xx_hal_gpio.c的常见函数
物联网产业蓄势待发 两部委护航物联网研发
苹果正在考虑做中端定位的产品
人工智能和增强智能正在推动医学成像科学的发展
什么是Ludos状态通道
StackOverflow平台传播范围最广的代码段包含一个错误
建设中的智能工厂需考虑的十个核心要素
euroasiaPress2012硅谷探索:最新模拟与数字世界
为什么需要动态频谱共享?
吝啬到底--从显示屏中为笔记本电池榨油
诺基亚要王者归来?新旗舰搭载5个摄像头,售价高达六千元!
碳刷与滑环的区别是什么
音圈模组助力的3D打印技能竞赛
索尼已经获得美国政府的许可对华为供货
超声波风速风向传感器产品特点对比说明