一、代码
1.1 main.c
![](https://img-blog.csdnimg.cn/bca2aeed60de451584457a8f3ab0d680.png)
1.2 gpio.c
//上升沿触发
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
switch(GPIO_Pin)
{
//按钮key2
case GPIO_PIN_7:
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_10);
printf("key2!!!!\n");
break;
//按钮key1
case GPIO_PIN_8:
HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_10);
printf("key1!!!!\n");
break;
//按钮key3
case GPIO_PIN_9:
HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_8);
printf("key3!!!!\n");
break;
}
}
//下降沿触发
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{
switch(GPIO_Pin)
{
//光电触发器
case GPIO_PIN_15:
HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_15);
printf("Photoelectric sensor!!!!\n");
break;
//火焰触发器
case GPIO_PIN_5:
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_5);
printf("Flame sensor!!!!\n");
break;
//人体红外触发器
case GPIO_PIN_12:
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_12);
printf("Human infrared sensor!!!!\n");
break;
}
二、执行结果
![](https://img-blog.csdnimg.cn/c1b66db0e47a43d7b8f36fa81af59d23.png)