用的是探索者STM32F4开发板。IO的配置程序如下:
[mw_shl_code=c,true] GPIO_InitTypeDef GPIO_InitStructure;
//打开GPIOC的时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
//打开GPIOD的时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
//需要配置的引脚为PC1、PC4、PC5、PC7、PC13
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//将GPIOC配置成输入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//将GPIOC配置成上拉模式
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIOC
//需要配置的引脚为PD0、PD1、PD3、PD4、PD5、PD6、PD4、……PD11
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5
|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//将GPIOD配置成输入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//将GPIOD配置成上拉模式
GPIO_Init(GPIOD, &GPIO_InitStructure);//初始化GPIOD[/mw_shl_code]
下面是keil软件的寄存器值IDR,发现PD3读到的居然是低电平!!!
我将PD3接到3.3V电压上后,可以读到高电平了,但是这个时候PC5的IDR的值莫名其妙的变成了低电平。这是怎么回事?是开发板的芯片坏了么?
|