通用输入/输出(GPIO)外设的功能:
* +初始化和反初始化函数
* + IO操作功能
GPIO外围功能
根据数据表中列出的每个I/O端口的具体硬件特性,每个
GPIO (General Purpose IO)端口位,可通过软件单独配置
在几个模式:
(+)输入模式
(+)模拟模式
(+)输出模式
(+)交替功能模式
(+)外部中断/事件行
在复位期间和刚刚复位之后,交替的功能和外部中断
线路不活动,I/O端口配置为输入浮动模式。
所有的GPIO引脚都有较弱的内部上拉和下拉电阻,可以
激活。
在输出或交替功能模式下,每个IO都可以配置在开路排水沟或推拉上
类型和IO速度可根据VDD值选择。
所有端口都具有外部中断/事件能力。使用外部中断
行,端口必须配置为输入模式。所有可用的GPIO引脚
连接到从EXTI0到EXTI15的16个外部中断/事件行。
外部中断/事件控制器由多达20个边缘检测器组成
Line设备,或其他设备中的19个边缘检测器用于生成事件/中断请求。
每个输入行可以独立配置来选择类型(事件或中断)和
相应的触发事件(上升或下降或两者都有)。
每一行也可以被屏蔽
独立。一个未决寄存器维护中断请求的状态行
如何使用这个驱动程序
开启GPIO APB2时钟的方法如下:__HAL_RCC_GPIOx_CLK_ENABLE()。
使用HAL_GPIO_Init()配置GPIO引脚。
使用GPIO_InitTypeDef结构中的“mode”成员配置IO模式
使用来自GPIO_InitTypeDef的“Pull”成员激活上拉、下拉电阻
结构。
当输出或交替功能模式选择时:速度为
通过GPIO_InitTypeDef结构中的“Speed”成员配置
当一个引脚用作ADC通道时,需要模拟模式
或DAC输出
在外部中断/事件选择的情况下,“Mode”成员
GPIO_InitTypeDef结构选择类型(中断或事件)和
相应的触发事件(上升或下降或两者都有)。
如果选择外部中断/事件模式,请配置NVIC IRQ优先级
使用HAL_NVIC_SetPriority()映射到EXTI行,并使用
HAL_NVIC_EnableIRQ()。
使用HAL_GPIO_LockPin()锁定引脚配置直到下次重置。
在重置期间和刚刚重置之后,备用功能不是
GPIO引脚配置为输入浮动模式(JTAG除外)
针)
LSE振荡器引脚OSC32_IN和OSC32_OUT可以作为通用引脚使用
(PC14和PC15,分别)当LSE振荡器关闭。LSE振荡器引脚
优先级高于GPIO功能
HSE振荡器引脚OSC_IN/OSC_OUT可作为
通用PD0和PD1,分别在HSE振荡器关闭时。
HSE优先于GPIO功能。