天天看点

STM32编程(一)STM32 GPIO配置的4大步骤GPIO配置的4大步骤

GPIO配置的4大步骤

前言:只要初始化了GPIO完成后 在主函数中调用GPIO_SetBits(xxxx),GPIO_ResetBits(xxxx)就可以控制它的引脚了。

1  定义GPIO引脚的结构体变量

GPIO_InitTypeDef GPIO_InitStructure;

2  配置引脚的速度(可以配置你用到的多个引脚)

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);

3 初始化结构体的变量,详情见下面(对结构体的详细理解)

    (1)引脚

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

     如果不是只用C E 的5号引脚  可以将  GPIO_Pin_5  改成 GPIO_Pin_All

    (2)速度

     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    (3)模式

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽模式 既可以0 又可以1

4 初始化对应的端口

  GPIO_Init(GPIOC, &GPIO_InitStructure);

  GPIO_Init(GPIOE, &GPIO_InitStructure);

将上面4个大步骤的代码整理如下 就完成了对GPIO的初始化

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_Init(GPIOE, &GPIO_InitStructure);

为了理解GPIO配置的步骤,首先要了解GPIO_InitTypeDef这个结构体

typedef struct

{

  uint16_t                          GPIO_Pin;           引脚                                    

  GPIOSpeed_TypeDef    GPIO_Speed;      配置速度

  GPIOMode_TypeDef      GPIO_Mode;       配置模式(可见我的另一篇博客)

}GPIO_InitTypeDef;