1 /**
2 *函数功能:初始化引脚模式
3 *参数说明:GPIOx,该参数为GPIO_TypeDef 类型的指针,指向GPIO 端口的地址
4 * GPIO_InitTypeDef:GPIO_InitTypeDef 结构体指针,指向初始化变量
5 */
6 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
7 {
8 uint32_t currentmode =0x00,currentpin = 0x00,pinpos = 0x00,pos = 0x00;
9 uint32_t tmpreg = 0x00, pinmask = 0x00;
10
11 /*---------------- GPIO 模式配置 -------------------*/
12 // 把输入参数GPIO_Mode 的低四位暂存在currentmode
13 currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) &
14 ((uint32_t)0x0F);
15
16 // bit4 是1 表示输出,bit4 是0 则是输入
17 // 判断bit4 是1 还是0,即首选判断是输入还是输出模式
18 if ((((uint32_t)GPIO_InitStruct->GPIO_Mode) &
19 ((uint32_t)0x10)) != 0x00)
20 {
21 // 输出模式则要设置输出速度
22 &nb