基础配置可参考
查阅产品手册可知
按键对应引脚如图
按键B1 对应引脚为PB0
按键B2 对应引脚为PB1
按键B3 对应引脚为PB2
按如图配置按键为中断模式,同时配置PC8-PC15为GPIO_OUTPUT选中LD1-LD8
(这里只配置了一个按键的中断,所以只用使能一条中断线)
生成工程后
int x=0; //定义全局变量x
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) //使用中断回调函数
{
if(GPIO_Pin == GPIO_PIN_0) //如果触发中断的是PB0
{
HAL_Delay(10); //按键消抖
if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) ) //如果B1按下,则令x = 1
x = 1;
}
if(GPIO_Pin == GPIO_PIN_1) //如果触发中断的是PB1
{
HAL_Delay(10); //按键消抖
if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) ) //如果B2按下,则令x = 2
x = 2;
}
if(GPIO_Pin == GPIO_PIN_2) //如果触发中断的是PB3
{
HAL_Delay(10); //按键消抖
if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) ) //如果B3按下,则令x = 3
x = 3;
}
这里定义全局变量x的作用就是记录操作值,在主函数中使用if(x == 1){ }等来执行相应操作。