用按键扫描用注释掉的那一段时板子没有任何效果,,求解释
int main ()
{
vu8 key=0;
LED_Init();
KEY_Init ();
while(1)
{
key=KEY_Scan(0);
//////////////////////////////////////// if(key==KEY0_PRES)
//////////////////////////////////////// {
//////////////////////////////////////// LED0=!LED0;
//////////////////////////////////////// }
//////////////////////////////////////// else if(key==KEY1_PRES)
//////////////////////////////////////// {
//////////////////////////////////////// LED1=!LED1;
//////////////////////////////////////// }
//////////////////////////////////////// else if(key==WKUP_PRES)
//////////////////////////////////////// {
//////////////////////////////////////// LED1=!LED1;
//////////////////////////////////////// LED0=!LED0;
//////////////////////////////////////// } 没效果
delay_ms(1000);
if(key)
{
switch (key)
{
case KEY0_PRES: LED0=!LED0; break;
case KEY1_PRES: LED1=!LED1; break;
case WKUP_PRES: LED0=!LED0;LED1=!LED1; break;
case 0 : LED0=0; break;
}
}else delay_ms(10);
}
}
也就是换成下面这一段按键没有反应
#include "stm32f10x.h"
#include "KEY.h"
#include "led.h"
#include "sys.h"
#include "delay.h"
#include "sys.h"
int main ()
{
vu8 key=0;
LED_Init();
KEY_Init ();
while(1)
{
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
LED0=!LED0;
}
else if(key==KEY1_PRES)
{
LED1=!LED1;
}
else if(key==WKUP_PRES)
{
LED1=!LED1;
LED0=!LED0;
}
delay_ms(10);
//////////////// if(key)
//////////////// {
//////////////// switch (key)
//////////////// {
//////////////// case KEY0_PRES: LED0=!LED0; break;
//////////////// case KEY1_PRES: LED1=!LED1; break;
//////////////// case WKUP_PRES: LED0=!LED0;LED1=!LED1; break;
//////////////// case 0 : LED0=0; break;
//////////////// }
////////////////
//////////////// }else delay_ms(10);
}
}
是不是没有delay,导致LED变化太快,肉眼看不过来