打印

按键PC13好像跟PA0冲突

[复制链接]
245|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
车水马龙|  楼主 | 2019-11-24 16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pc, pi, gp, GPIO, IO
今天有人问我 ,使用了PA0进行扫描,然后再加上PC13进行扫描,这个时候,PC13就没反应了  。如果注释掉PA0的话,PC13是可以正常工作的。我试了一下找不到原因。

主函数代码:
        while(1)
        {
               
                                if(KEY_Scan(GPIOC,GPIO_Pin_13)==KEY_ON)
                {
                                LED3_TOGGLE;
                }
               
               
                if(KEY_Scan(GPIOA,GPIO_Pin_0)==KEY_ON)
                {
                                LED2_TOGGLE;
                }
               

        
        }


key函数代码:
void KEY_GPIO_Config()
{
        GPIO_InitTypeDef GPIO_InitStruct;
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
        
        GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_0;
// GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
        
        GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_13;
// GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOC,&GPIO_InitStruct);
}

uint8_t KEY_Scan(GPIO_TypeDef *  GPIOx,  uint16_t  GPIO_Pin )
{
        if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON)
        {
                delay_ms(100);
                if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON)
                {
                while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);
                        return KEY_ON;
                }
                return KEY_OFF;
        }
        return KEY_OFF;
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

474

主题

476

帖子

0

粉丝