GPIO_Init函数

GPIO_Init函数:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

功能描述: 根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器
输入参数1: GPIOx:x可以是A,B,C,D或者E,来选择GPIO外设
输入参数2: GPIO_InitStruct:指向结构GPIO_InitTypeDef的指针,包含了外设GPIO的配置信息
由此我们知道第二个参数“&GPIO_InitStructure”包含的是外设GPIO的配置信息,主函数开头我们进行了这样一个私有数据声明:

GPIO_InitTypeDef  GPIO_InitStructure;

在头文件“stm32f10x_gpio.h”看到对GPIO_InitTypeDef 的定义:

 typedef struct
{
        uint32_t GPIO_Pin;             
                              
       GPIOMode_TypeDef GPIO_Mode;    
       GPIOSpeed_TypeDef GPIO_Speed;  
       GPIOOType_TypeDef GPIO_OType;  
       GPIOPuPd_TypeDef GPIO_PuPd;    
}GPIO_InitTypeDef;

对GPIO配置的参数理解:
GPIOMode_TypeDef GPIO_Mode:

typedef enum
{ 
  GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */
  GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */
  GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */
  GPIO_Mode_AN   = 0x03  /*!< GPIO Analog Mode */
}GPIOMode_TypeDef;

GPIOSpeed_TypeDef GPIO_Speed:

  typedef enum
{ 
  GPIO_Low_Speed     = 0x00, /*!< Low speed    */
  GPIO_Medium_Speed  = 0x01, /*!< Medium speed */
  GPIO_Fast_Speed    = 0x02, /*!< Fast speed   */
  GPIO_High_Speed    = 0x03  /*!< High speed   */
}GPIOSpeed_TypeDef;

此外,
还要对这个函数有个大概理解
(https://img-blog.csdnimg.cn/20190728202929917.png

其实就是初始化引脚

你可能感兴趣的:(STM32F4,GPIO_Init)