我在使用STM32F103时,PA15作为推挽输出,PA8作为下拉输入,初始化如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
上述程序我单步运行,在执行完PA15初始化后,PA8口对应的IDR寄存器值变成1(高电平)。然后我继续执行PA8的初始化,结果IDR的值仍然是1,真的很奇怪,外部什么都没连,按理下拉输入应该是低电平才对啊。
请高手帮忙分析一下,谢谢!! |