【蓝桥杯物联网】第三章 stm32l0xx_hal_gpio.c的常见函数

本章将介绍几个在比赛中常见的函数,这几个函数都是非常简单,关系到led,按键,继电器等简单的外设。
第一节hal_gpio_init
函数原型:
voidhal_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_pinstatehal_gpio_readpin(gpio_typedef*gpiox,uint16_tgpio_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
函数原型:
voidhal_gpio_writepin(gpio_typedef*gpiox,uint16_tgpio_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
函数原型:
voidhal_gpio_exti_irqhandler(uint16_t gpio_pin);
函数解析:
外部中断服务函数,用来响应外部中断的触发。
形参解析:
一共一名形参,该形参的具体功能如下:
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
void函数无返回值。
第八节hal_gpio_exti_callback
函数原型:
__weakvoid hal_gpio_exti_callback(uint16_t gpio_pin);
函数解析:
该函数是回调函数,说白了就是中断之后,需要什么功能,就写在这个函数里面。至于__weak,它是一个弱化标识,带有这个的函数就是一个弱化函数,就是你可以在其他地方写一个名称和参数都一模一样的函数,编译器就会忽略这一个函数,而去执行你写的那个函数。
形参解析:一共一名形参,该形参的具体功能如下:
uint16_t gpio_pin:该形参是对gpio引脚的定义,比如:gpio_pin_14,gpio_pin_15等等。
返回值:
该函数无返回值。
往期精彩
【1】【蓝桥杯物联网】第二章 软件环境搭建
【2】【蓝桥杯物联网】第一章 了解开发板
【3】蓝桥杯单片机文档教程免费下载
【4】
【5】【蓝桥杯单片机】第十六章 独立按键(松开有效)
原文标题:【蓝桥杯物联网】第三章 stm32l0xx_hal_gpio.c的常见函数
文章出处:【微信公众号:撞上电子】欢迎添加关注!文章转载请注明出处。

保险箱智能化真的有必要吗?
Meta开源NLLB翻译模型,支持200种语言互译
医疗高速“眼科CT“成功研制
iPhone8、三星Note8最新消息汇总:iPhone8、三星Note8不拼性能拼价格,超8000你买谁?
电子复合功能材料在智能手机中的应用
【蓝桥杯物联网】第三章 stm32l0xx_hal_gpio.c的常见函数
L9942反电动势堵转检测算法
哪款蓝牙耳机颜值比较高?四款音质好的蓝牙耳机测评
企业微信对接CRM销售系统,助力企业客户增长
5G开启万物智能互联时代 首个商用5G智慧电网在广东启动
卫浴陶瓷行业MES系统应用价值
语音芯片在仿生驱鸟器上的应用!
特斯拉新车或采用UWB无缝解锁汽车模式
行业方案|冶金行业数字化采购管理系统解决方案
5G时代来临是物联网的催化剂,万物互联将成全球重要发展方向
奥迪的数字化转型路:虚拟驾驶舱发力
从辅助驾驶到自动驾驶: 感知型车辆建立在底层高质量的传感器数据基础之上
“新四化”驱动下,江波龙如何应对车规级存储发展的挑战?
激光雷达的量产正在进入窗口期
奥普光电:禹衡光学深耕于传感器领域 高端品占比呈增长趋势