简单整理归纳一下STM32的GPIO的使用:
1. 定义一个GPIO_InitTypeDef类型的结构体
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitTypeDef定义为:
typedef struct
{
uint16_t GPIO_Pin; //引脚号
GPIOSpeed_TypeDef GPIO_Speed;//引脚速率
GPIOMode_TypeDef GPIO_Mode; //模式
} GPIO_InitTypeDef;
2. 开启端口的APB2外设时钟,GPIOx外设全部是挂载在时钟APB2总线上的
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);
即填充结构体的3个值:
3. 选择要控制的引脚号
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;
4. 配置引脚速率
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
5. 配置引脚模式(为推挽输出模式)
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
6. 调用GPIO_Init()函数,把设置好的结构体数据,配置到GPIOx
GPIO_Init(GPIOx,&GPIO_InitStructure);
7. IO的控制,控制IO的高/低电平:参数1为端口,参数2为该端口某引脚号
置高:GPIO_SetBits(GPIOx,GPIO_Pin_x)
置低:GPIO_ResetBits(GPIOx,GPIO_Pin_x)