蓝桥杯物联网STM32 学习记录3——HAL库GPIO函数
stm32l0xx_hal_gpio.h中的八大函数
/* Initialization and de-initialization functions *******************************/
/** @defgroup GPIO_Exported_Functions_Group1 Initialization and de-initialization functions* @{*/
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
/*** @}*//* IO operation functions *******************************************************/
/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions@{*/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
HAL_GPIO_Init:根据
HAL_GPIO_Init
配置中指定的参数初始化 GPIOx 外设。
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
- 参数1
Gpiox
: x 可以是 (A~E 和 H) 为 STM32L0XX 系列设备选择 GPIO 外设(请注意,GPIOE 并非在所有设备上都可用。) - 参数2
GPIO_Init
:指向包含GPIO_InitTypeDef
结构的指针( 指定 GPIO 外设的配置信息。)
HAL_GPIO_DeInit:将
GPIOx
外设寄存器取消初始化为其默认重置值。
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
- 参数1
Gpiox
:同上。 - 参数2
GPIO_Pin
: 指定要写入的端口位。 此参数可以是 x 可以 (GPIO_PIN_x 0~15) 的参数之一。(所有端口位不一定在所有 GPIO 上都可用。)
HAL_GPIO_ReadPin:读取指定的输入端口引脚。
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
- 参数1
Gpiox
:同上。 - 参数2
GPIO_Pin
:同上。 - 返回值:输入端口引脚值。
HAL_GPIO_WritePin:设置或清除所选数据端口位。
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
- Tips: 此函数使用GPIOx_BSRR寄存器允许原子操作的读取/修改访问。这样,读取和修改访问之间没有发生 IRQ(“Interupt ReQuest”,即“中断要求”。) 的风险。
- 参数1
Gpiox
:同上。 - 参数2
GPIO_Pin
:同上。 - 参数3
PinState
:指定要写入所选位的值。
GPIO_PinState
枚举对象如下:
typedef enum
{GPIO_PIN_RESET = 0U,GPIO_PIN_SET
}GPIO_PinState;
HAL_GPIO_TogglePin:切换指定的 GPIO 引脚。
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
- 参数1
Gpiox
:同上。 - 参数2
GPIO_Pin
:同上。
HAL_GPIO_LockPin:锁定 GPIO 引脚配置寄存器。
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
- Tips1:
The locked registers areGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH
. - Tips2:锁定的 GPIO 引脚的配置在下次重置之前无法再修改。
- 参数1
Gpiox
:同上。 - 参数2
GPIO_Pin
:同上。
HAL_GPIO_EXTI_IRQHandler:此函数处理 EXTI 中断请求。
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
- 参数1
GPIO_Pin
:同上。
HAL_GPIO_EXTI_Callback:EXTI 线路检测回调。
__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{/* Prevent unused argument(s) compilation warning */UNUSED(GPIO_Pin);/* NOTE: This function Should not be modified, when the callback is needed,the HAL_GPIO_EXTI_Callback could be implemented in the user file*/
}
- 参数1
GPIO_Pin
:同上。
以上就是结合机器翻译和我的理解对stm32l0xx_hal_gpio.h八大函数的注释解读了,英语水平让人捉急。。。有不当之处私聊我哦
蓝桥杯物联网STM32 学习记录3——HAL库GPIO函数相关推荐
- 【学习记录】野火stm32学习记录(一)GPIO
观看的视频:野火-视频链接 https://www.bilibili.com/video/BV18X4y1M763 什么是GPIO? GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的 ...
- 蓝桥杯物联网基础图文教程——GPIO输出控制LD5亮灭
蓝桥杯物联网基础教程--GPIO输出控制LD5亮灭 (本系列教程针对一些有stm32基础的同学,需要参加蓝桥杯物联网竞赛的,对HAL库感兴趣的同学提供参考,本文不再详细赘述关于stm32基础原理指导) ...
- stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
前言 上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且 ...
- 蓝桥杯物联网竞赛基础图文教程——时钟选择
蓝桥杯物联网竞赛基础图文教程--时钟选择 1什么是时钟 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令.时钟系统就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才 ...
- 【临时抱佛脚之蓝桥杯物联网日志】蓝桥杯基本情况,开发板
一.蓝桥杯基本情况 二.了解开发板 1.LoRa 终端 2.传感器模块 温度传感器 矩阵键盘 模拟电压输出 脉冲输出 光敏与红外热释电 3.调试器 4.时钟 5.OLED显示屏 6.继电器 7.通用接 ...
- 蓝桥杯物联网例程下载
今年是蓝桥杯物联网的第一届 我也是赶快买了物联网的开发板 这是附带的例程和一些综合实验 仅供参考练习 里面所有的例程大概花了两周实现了大部分(有一些例如ADC和PWM的 手头没有示波器和电压表就没有做 ...
- 蓝桥杯单片机比赛学习:11、频率测量的基本原理
在蓝桥杯单片机比赛中,频率测量一次都没考过,但是也不排除不考的可能.频率测量相对前面的几个模块来说相对简单,只需要两个定时器就可以实现. 频率测量的基本原理 产生脉冲的主要元件是555定时器.555定 ...
- 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯
经过7节的学习,我们已经掌握了基本的硬件的使用规则,从本节开始我们开始学习一些模块的使用PWM.PCF8591.AT24C02.DS18B20.DS1302.555频率测量.光敏电阻测量.超声波测距等 ...
- 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理
上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...
最新文章
- DLUX组件扩展下篇-实践
- 国外流行十大PHP框架
- Dockerfile里的VOLUMES关键字
- qq空间网页设计_网页设计中负空间的有效利用
- python解析二维码_Python二维码生成识别实例详解
- 涂国旗(洛谷P3392题题解,Java语言描述)
- IIC总线的操作时序
- 十一假期国人消费力爆棚,国内旅游收入超6497亿,你花了多少?
- mybatis使用mapper代理的方式操作数据库
- 事件mousseenter和mouseover的区别
- 魔兽世界服务端开服架设服务器搭建教程
- 5G+MEC+V2X车联网解决方案白皮书
- MATLAB | 全网唯一,双变量及三变量映射图表的MATLAB绘制
- sprintf_s、_snprintf与_snprintf_s
- tabindex的使用
- Python数据处理性能对比,原生,Pandas,Numpy哪个更优秀
- python手机触屏代码_JS移动客户端--触屏滑动事件及js手机拖拽效果
- matlab 三围温度,matlab 两个二维温度场平面如何通过插值立体重建三维温度场
- 互联网时代的春秋战国
- 2021-06-01-《图解HTTP》笔记
热门文章
- 数学与计算机科学学院英文,牛玉贞 - 福州大学 - 数学与计算机科学学院
- Ice.ConnectFailedException
- 西门子PLC S7-200和S7-300有什么差别?如何进行远程上下载?
- 1.3寸oled(I2C)右屏幕出现一条竖线
- Vue3核心源码解析第十一课 AST生成代码
- 【阿里云仓库 可用 2022】IDEA MAVEN setings.xml 配置
- Element引入Iconfont(阿里巴巴矢量图标库)第三方图标库
- 第二届同花顺算法大赛 | 2022 | AI算法
- OpenStack配置Cinder出现“You must set cylinders.You can do this from the extra functions menu.”解决办法
- linux系统禁用声卡,Ubuntu Linux系统下声卡独占的解决方法