一個按鍵既作開機又作關機,遇到這樣的問題就是開機按鍵長按開機,但是按得太久開機又馬上關機了,所以必須設置一個按鍵鬆開標誌;
static u8 key_up=0;
//長按的時候這個腳GPIO_Pin_4會一直採到高電平,只有鬆開按鍵時候這個腳纔會變成低電平,然後key_up=1後下面的關機纔可以執行到,否則不會被執行。
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==0)
{
key_up=1;
}
if(key_up&&(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==1) )
{
if((GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==1))
{
delay_ms(2000);
if(KEY0==1)
GPIOC->BRR=POWER_ON_PIN;
}
}