微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM8S105 按键长短按 实现不了

STM8S105 按键长短按 实现不了

时间:10-02 整理:3721RD 点击:
独立按键实现长短功能,为什么实现不了。大家帮我看看。
void delay_ms(uint16_t nCount)
{
    while(nCount--)
    {
            delay_us(1000);
    }
}

void main(void)
{
    CLK_Config();
    GPIO_Config();
    //EXTI_Config();
    //TIM1_Config();
    //TIM2_Config();
    //TIM4_Config();
    //enableInterrupts();
    while (1)
     {
     
         if(GPIO_ReadInputPin(KEY_PORT,KEY_PIN))//按键一
         {
             keyflag=1;
             delay_ms(100);//延迟消抖
             if(GPIO_ReadInputPin(KEY_PORT,KEY_PIN))
                {
                    while(GPIO_ReadInputPin(KEY_PORT,KEY_PIN))//等待释放
                     {
             for(y=0;y<100;y++);
                            x++;//计算按键时间                        
                     }
                    if(x<10&&!keyflag)//短按
                {
                                    GPIO_WriteHigh(LED3_PORT,LED3_PIN);
                  //GPIO_WriteReverse(LED3_PORT,LED3_PIN);
                }
                    else if(x>50&&!keyflag)//长按
                        {
                          GPIO_WriteHigh(LED4_PORT,LED4_PIN);
                            delay_ms(500);
                            GPIO_WriteLow(LED4_PORT,LED4_PIN);
                        }
                }
            }
                    
     }
}

X使用完,没有清零吧?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top