STM32F4外设驱动系列之GPIO

STM32F4外设驱动系列之GPIO

  • GPIO常用相关寄存器
  • GPIO初始化函数与参数
    • GPIO初始化函数:HAL_GPIO_Init()
    • GPIO初始化参数结构体:GPIO_InitTypeDef
  • GPIO初始化实例

GPIO常用相关寄存器

MODER:GPIO端口模式控制寄存器(GPIOx_MODER)(x = A..I)
OTYPER:GPIO端口输出类型寄存器(GPIOx_OTYPER)(x = A..I)
OSPEEDR:GPIO端口输出速度寄存器(GPIOx_OSPEEDR)(x = A..I)
PUPDR:GPIO端口上拉/下拉寄存器(GPIOx_PUPDR)(x = A..I)
IDR:GPIO端口输入数据寄存器(GPIOx_IDR)(x = A..I)
ODR:GPIO端口输出数据寄存器(GPIOx_ODR)(x = A..I)
AFRH/AFRL:GPIO复用功能高/低位寄存器(GPIOx_AFRH/GPIOx_AFRL)(x = A..I)

寄存器具体详情可查看STM32F4xx参考手册。

GPIO初始化函数与参数

GPIO初始化函数:HAL_GPIO_Init()

HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)

GPIO初始化参数结构体:GPIO_InitTypeDef

typedef struct
{
  uint32_t Pin;      
  uint32_t Mode;     
  uint32_t Pull;    
  uint32_t Speed;   
  uint32_t Alternate;
}GPIO_InitTypeDef

函数与结构体具体实现可参见HAL库源代码。

GPIO初始化实例

//初始化PA0端口
void GPIO_Init(void)
{
	GPIO_InitTypeDef	GPIO_Initure;							//GPIO初始化结构体
	__HAL_RCC_GPIOA_CLK_ENABLE();								//开启GPIOA时钟
	
	GPIO_Initure.Pin = GPIO_PIN_0;								//PA0
	GPIO_Initure.Mode = GPIO_MODE_INPUT;						//输入
	GPIO_Initure.Pull = GPIO_PULLDOWN;							//下拉
	GPIO_Initure.Speed = GPIO_SPEED_HIGH;						//高速
	HAL_GPIO_Init(GPIOA, &GPIO_Initure);
}

GPIO引脚的参数需根据实际应用情况进行设置。

你可能感兴趣的:(STM32)