stm32f407的通用io设置,串口接收到数据始终是GPIOC=0000

2019-07-14 14:04发布

各位,我在使用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端口的输入状态,再通过串口输出:程序是
    OStimeDly(500);
    {
        char buf[15];
        InitExternalIO();
        sprintf(buf,"GPIOC=%04x ",GPIOC->IDR);
        DebugPrint(buf);
    }

在我改变C端口的状态时(示波器观测有变化),但是在串口接收到数据始终是GPIOC=0000,我想知道 哪里没有设置好,或者是由于硬件上问题,望知其下落者告知?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
rstech_rd
1楼-- · 2019-07-14 23:20
 精彩回答 2  元偷偷看……
rstech_rd
2楼-- · 2019-07-15 04:43
但是奇怪的是,我在使用PB5,PB6,PB7模拟读写外部E2PROM是正确的,但是端口C D E F,读取不到状态变化,我擦
BJJRTD
3楼-- · 2019-07-15 08:41
输入的话  不用配置speed和otype
rstech_rd
4楼-- · 2019-07-15 08:51
是的不用配置,但是配置了也不影响,在调用端口初始化函数时,那部分没执行的。我关心的是状态为何读取不到。
rstech_rd
5楼-- · 2019-07-15 10:51
没人帮我了,我晕
胡德胜快回答
6楼-- · 2019-07-15 16:25
 精彩回答 2  元偷偷看……

一周热门 更多>