int main(void)
{
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
u8 key; //保存键值
delay_ms(168);
// SystemInit();
LED_Init();
// KEY_Init();
// EXTIX_Init();
while(1)
{
LED1(ON);
LED2(ON);
//while(1)
{
key=KEY_Scan(); //得到键值
//去抖动
switch(key)
{
case 1: //控制LED0翻转
LED1(OFF);
break;
case 2: //控制LED1翻转
LED2(OFF);
break;
case 3: //同时控制LED0,LED1翻转
break;
}
delay_ms(100);
}
}
}
key 函数:
#include "delay.h"
void KEY_Init(void) //按键相关的io 的初始化函数
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
/*
KEY=0 没有见按下
KEY=1 按下key0
KEY=2 按下key1
KEY=3 按下key3
*/
u8 KEY_Scan(void)
{
if(KEY0==0||KEY1==0||KEY2==0)
{
delay_ms(10);//去抖动
if(KEY0==0)return 1;
else if(KEY1==0)return 2;
else if(KEY2==0)return 3;
}else if(KEY0==1&&KEY1==1&&KEY2==1);
return 0;// 无按键按下
return 0;// 无按键按下
}
灯就是不能亮 真的很奇怪
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
case 1: //控制LED0翻转
LED1(OFF);
delay_ms(500);
试下看行不
一周热门 更多>