各位,我在使用
STM32f407zet6这个
芯片的时候,想把GPIOC设置为输入端口,检测外部按键,我的程序具体编码是这样的:
//对端口初始化
void InitExternalIO(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* ´ò¿ªGPIOCµÄʱÖÓ */
RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
//ÊäÈë¶Ë¿Ú
//PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN; //ÊäÈë
GPIO_InitStructure.GPIO_OType=GPIO_OType_OD; //¿ªÂ©Êä³ö
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; //
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_25MHz; //
GPIO_Init(GPIOC,&GPIO_InitStructure);
}
然后在循环里面循环读取C端口的输入状态,再通过串口输出:程序是
OS
timeDly(500);
{
char buf[15];
InitExternalIO();
sprintf(buf,"GPIOC=%04x
",GPIOC->IDR);
DebugPrint(buf);
}
在我改变C端口的状态时(示波器观测有变化),但是在串口接收到数据始终是GPIOC=0000,我想知道 哪里没有设置好,或者是由于硬件上问题,望知其下落者告知?
一周热门 更多>