在开发实战指南一书中,GPIO口初始化函数GPIO_Init(GPIOB,&GPIO_InitStructure)第二个参数传入的是结构体变量的地址, 该函数原型是这样的:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
功能描述: 根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器
输入参数1: GPIOx:x可以是A,B,C,D或者E,选择GPIO外设
输入参数2: GPIO_InitStruct:指向结构GPIO_InitTypeDef的指针,包含了外设GPIO的配置信息
于是我将之前定义的结构体变量改为结构体指针,再将指针传入,改为如下GPIO_InitTypeDef *GPIO_InitStructure;
RCC_APB2ENR|=(1<<3);
GPIO_InitStructure->GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure->GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure->GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,GPIO_InitStructure);
很奇怪的是语法编译都可以通过,但是灯却不亮了,何解? |