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;