#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "key.h"
int main (void)
{
u8 a;
RCC_Configuration();//RCC时钟类的设置
LED_Init ();//led初始化
KEY_Init ();//按键初始化
while(1)
{
if(!GPIO_ReadInputDataBit(KEYPORT,KEY1))
{
delay_ms(20); //防抖
if(!GPIO_ReadInputDataBit(KEYPORT,KEY1))
{
a++;
if(a>3)
{
a=0;
}
GPIO_Write(LEDPORT,a);
while(!GPIO_ReadInputDataBit(KEYPORT,KEY1));
}
}
}
}
这就是一个按键灯亮的程序,按一下led1亮,按第二下,led2亮,按三下led1,2同时亮。写程序时要明确思路,单片机要判断按键是否按下,这时需要延时一下,防止意外抖动,如果延时后还是那个状态,就执行下面的程序。