一、单片机有三种工作模式(定义全局变量mode表示模式,mode=1,2,3表示三种不同的模式),通过key1按键控制设备的开关
- LED控制模式:1
- 风扇控制模式:2
- 蜂鸣器控制模式:3
1.先使用CUbex配置引脚
2.代码编写
int mode = 0; // 当前模式
int key_num = 0; // 按键触发次数,控制设备开关void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{if (GPIO_Pin == GPIO_PIN_12) // 上升沿判断模式{mode++; if (mode > 3) {mode = 1; // 返回到LED灯模式}}if (GPIO_Pin == GPIO_PIN_9) // 上升沿判断控制设备状态{// 先关闭所有控制设备key_num++;//HAL_Delay(20);// 根据mode进行不同的操作switch (mode) {case 1: // LED模式if (key_num % 2 == 1) // 按键次数为奇数时打开LED{HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_4); // LED1模式}break;case 2: // 风扇模式if (key_num % 2 == 1){HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_6); // 风扇开关}break;case 3: // 蜂鸣器模式if (key_num % 2 == 1){HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_15); // 蜂鸣器开关}break;default:break;}}
}