一、流程
1.按键轮询检测
2.按键外部中断检测
二、详细解释和代码
1.按键轮询检测
rcu_periph_clock_enable(RCU_GPIOD);
//初始化GPIOD口的时钟
gpio_mode_set(GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP,GPIO_PIN_0);
//设置PD0引脚为输入模式,上拉电阻(此时引脚接的高电平 按键按下后为低电平)。
//若引脚接的低电平,按键按下后为高电平,则需要使用下拉电阻
while(1)
{
if(gpio_input_bit_get(GPIOD,GPIO_PIN_0)==0)//判断此时按键是否按下
{
delay_ms(150);//延时150ms 按键消抖
if(gpio_input_bit_get(GPIOD,GPIO_PIN_0)==0)//再次判断此时按键是否按下
{
//在此处写入按键按下后要执行的操作
}
}
}
2.按键外部中断检测
rcu_periph_clock_enable(RCU_GPIOD);
//初始化GPIOD口的时钟
nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2