
#include "stm32f10x.h" //STM32头文件 #include "sys.h" #include "delay.h" #include "led.h" #include "key.h" int main (void){ //主程序 u8 a,b; u16 t=1; u8 Menu,i,m,K; //ppppppppppppppppppp RCC_Configuration(); //时钟设置 LED_Init(); KEY_Init(); while(1){ if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) //KEY0为PC5,若按下,则被清零 {delay_ms(20); //防抖动 if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) {a++; b=0; } } while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)); //检测是否松开 if(a%2==1) { if(m<10) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); //LED0为PA8,若清零,则亮 GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(0)); //LED1为PD2,若清零,则亮 for(K=0;K<10;K++) delay_ms(10); m++; } //延时1秒 if(m<20&&m>9) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(0)); GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); for(K=0;K<10;K++) delay_ms(10); m++; } if(m==20) m=0; } if(a!=0&&a%2==0) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); } if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)) //KEY1为PA15,若按下,则被清零 {delay_ms(20); //防抖动 if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)) {b++; a=0; } } while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)); //检测是否松开 if(b%2==1) { GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); if(Menu==0) { for(i=0;i<10;i++) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(0)); delay_us(t); GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); delay_us(501-t); } t++; if(t==500) { Menu=1; t=1; } } if(Menu==1) { for(i=0;i<10;i++) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); delay_us(t); GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(0)); delay_us(501-t); } t++; if(t==500) { Menu=0; t=1; } } } if(b!=0&&b%2==0) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); } } } |
if((!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) &&(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)))
谢谢你帮我解答~~刚刚试了一下还是不亮、、、
谢谢呀,中断的方法应该挺好的,我今天把他加上。三楼同学有没有不加中断的方法呀从程序判断这里可以解决么、、
要接下去判断呀:
if((!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) &&(!GPIO_ReadInputD )
{
}
else
if((!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5))
{
}
else
if(!GPIO_ReadInputD
{
}