一、熟悉GPIO结构体
以下这个结构体是我从官方手册中获取的:
typedef struct { u16 GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; } GPIO_InitTypeDef;
二、编写程序步骤
1、首先定义一个GPIO_InitTypeDef的结构体,给结构体起一个名字 GPIO_InitStructure;
GPIO_initTypeDef GPIO_initStructure ;
2、初始化RCC时钟
RCC_APB2PeriphClockCmd 使能或者失能 APB2 外设时钟,从下图看GPIOA-G均属于APB2时钟总线。
3、对结构体成员赋值,详情参考固件库使用手册
//GPIO管脚
u16 GPIO_Pin;
//GPIO口的速率
GPIOSpeed_TypeDef GPIO_Speed;
//GPIO的输出模式
GPIOMode_TypeDef GPIO_Mode;
4、初始化GPIO
这里要注意,每更新一个GPIO口就要初始化一次(用到了多组GPIO的情况)
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
5、
GPIO_SetBits 设置指定的数据端口位
GPIO_ResetBits 清除指定的数据端口位