在线时间6 小时
UID3657315
ST金币0
蝴蝶豆0
注册时间2020-7-6
初级会员
- 最后登录
- 2020-8-11
|
a0a.1 32b0c
通过按键控制小灯LD2亮灭,每按键一次,小灯状态发生一次变化。
配置按键,设置为下降沿触发,并且开启外部中断,设置优先级(设置优先级是为了和库函数中延时区分开,否则会干扰),如图:
通过配置和原理图可知,按键按下,PC13检测到低电平。通过gpio.c/gpio.h和main.c文件可以找到相关代码语句,在begin和end之间添加如下代码:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==GPIO_PIN_13)
{
HAL_Delay(100);
if(HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin)==GPIO_PIN_RESET)
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
}
}
其中加入延时Delay是为了防抖。
原代码如图所示:
修改完成后编译并下载。
通过按下按键观察开发板小灯顺序亮灭。
完成!!!!!!!
|
|