|
STM32G474xx HAL用户手册
|
GPIO HAL模块驱动程序。本文件提供固件函数来管理通用输入/输出(GPIO)外设的以下功能: + 初始化和去初始化函数 + IO操作函数。 更多...
#include "stm32g4xx_hal.h"定义 | |
| #define | GPIO_NUMBER (16U) |
函数 | |
| void | HAL_GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) |
| 根据GPIO_Init中指定的参数初始化GPIOx外设。 | |
| void | HAL_GPIO_DeInit (GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) |
| 将GPIOx外设寄存器去初始化为默认复位值。 | |
| 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) |
| 切换指定的GPIO引脚。 | |
| HAL_StatusTypeDef | HAL_GPIO_LockPin (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| 锁定GPIO引脚配置寄存器。 | |
| void | HAL_GPIO_EXTI_IRQHandler (uint16_t GPIO_Pin) |
| 处理EXTI中断请求。 | |
| __weak void | HAL_GPIO_EXTI_Callback (uint16_t GPIO_Pin) |
| EXTI线路检测回调函数。 | |
GPIO HAL模块驱动程序。本文件提供固件函数来管理通用输入/输出(GPIO)外设的以下功能: + 初始化和去初始化函数 + IO操作函数。
版权所有(c)2019 STMicroelectronics。保留所有权利。
本软件根据LICENSE文件中规定的条款进行许可。如果本软件不附带LICENSE文件,则按"原样"提供。
==============================================================================
##### GPIO外设特性 #####
==============================================================================
[..]
(+) GPIO端口的每一位都可以通过软件单独配置为以下模式:
(++) 输入模式
(++) 模拟模式
(++) 输出模式
(++) 复用功能模式
(++) 外部中断/事件线路
(+) 在复位期间和复位后,复用功能和外部中断线路处于未激活状态,IO端口配置为输入浮空模式。
(+) 所有GPIO引脚都具有弱内部上拉和下拉电阻,可以激活或不激活。
(+) 在输出或复用功能模式下,每个IO可以配置为开漏或推挽类型,并且IO速度可以根据VDD值进行选择。
(+) 微控制器的IO引脚通过多路复用器连接到板载外设/模块,该多路复用器只允许一个外设复用功能(AF)连接到
一个IO引脚。这样,同一个IO引脚上的外设之间就不会有冲突。
(+) 所有端口都具有外部中断/事件能力。要使用外部中断线路,端口必须配置为输入模式。所有可用的GPIO引脚都
连接到16条外部中断/事件线路(从EXTI0到EXTI15)。
(+) 外部中断/事件控制器由多达44个边沿检测器组成(16条线路连接到GPIO),用于生成事件/中断请求(每条输入线路
可以独立配置以选择类型(中断或事件)以及相应的触发事件(上升沿、下降沿或两者))。每条线路也可以独立屏蔽。
##### 如何使用此驱动程序 #####
==============================================================================
[..]
(#) 使用以下函数启用GPIO AHB时钟:__HAL_RCC_GPIOx_CLK_ENABLE()。
(#) 使用HAL_GPIO_Init()配置GPIO引脚。
(++) 使用GPIO_InitTypeDef结构中的"Mode"成员配置IO模式
(++) 使用GPIO_InitTypeDef结构中的"Pull"成员激活上拉、下拉电阻。
(++) 在选择输出或复用功能模式时:通过GPIO_InitTypeDef结构中的"Speed"成员配置速度。
(++) 在选择复用功能模式时:通过GPIO_InitTypeDef结构中的"Alternate"成员配置连接到IO的复用功能。
(++) 当引脚用作ADC通道或DAC输出时需要模拟模式。
(++) 在选择外部中断/事件时:使用GPIO_InitTypeDef结构中的"Mode"成员选择类型(中断或事件)
和相应的触发事件(上升沿、下降沿或两者)。
(#) 在选择外部中断/事件模式时,使用HAL_NVIC_SetPriority()配置映射到EXTI线路的NVIC IRQ优先级,
并使用HAL_NVIC_EnableIRQ()启用它。
(#) 要获取配置为输入模式的引脚电平,请使用HAL_GPIO_ReadPin()。
(#) 要设置/重置配置为输出模式的引脚电平,请使用
HAL_GPIO_WritePin()/HAL_GPIO_TogglePin()。
(#) 要锁定引脚配置直到下次复位,请使用HAL_GPIO_LockPin()。
(#) 在复位期间和复位后,复用功能处于未激活状态,GPIO引脚配置为输入浮空模式(JTAG引脚除外)。
(#) LSE振荡器引脚OSC32_IN和OSC32_OUT可以在LSE振荡器关闭时用作通用功能
(分别为PC14和PC15)。LSE优先于GPIO功能。
(#) HSE振荡器引脚OSC_IN/OSC_OUT可以在HSE振荡器关闭时用作
通用功能PF0和PF1。HSE优先于GPIO功能。
定义于文件stm32g4xx_hal_gpio.c。
1.7.6.1