一、开启外设GPIOx时钟
特别注意:需要用到特殊引脚:PA13,PA14,PA15,PB3,PB4(默认状态为JTAG功能)。
//开启外设GPIOA通用时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//开启外设GPIOB通用时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
/*
如果需要引用引脚:PA13,PA14,PA15,PB3,PB4(复位默认为JTAG引脚)。
需要开启GPIO的复用功能时钟。
而且需要关闭全部JTAG功能(更改指定引脚的重映射映射)
*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
//比如需要使用定时器2部分映射1(用到PA15)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
二、定义GPIO结构体并设置结构体成员
定义结构体变量,配置参数
结构体成员1:GPIO引脚
结构体成员2:GPIO引脚模式
结构体成员3:GPIO引脚速度
//定义结构体变量
GPIO_InitTypeDef GPIO_InitStructure;
//选择端口引脚
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
//选择引脚模式
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
//选择引脚速度
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//选择端口,并根据上面所选取的参数初始化
GPIO_Init(GPIOA,&GPIO_InitStructure);