打印
[STM32H7]

定时器与按键结合

[复制链接]
129|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t60yz|  楼主 | 2024-12-9 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定时器触发 LED 周期闪烁。
按键中断改变闪烁频率。
代码实现:
c
复制代码
volatile uint32_t blink_delay = 500; // LED 闪烁延时

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
    if (GPIO_Pin == GPIO_PIN_0) { // 按键中断
        blink_delay = (blink_delay == 500) ? 200 : 500; // 切换延时
    }
}

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
    if (htim->Instance == TIM2) {
        HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // 切换 LED 状态
    }
}

// 主循环中动态调整定时器周期
while (1) {
    __HAL_TIM_SET_AUTORELOAD(&htim2, blink_delay); // 动态更新定时周期
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

162

主题

1001

帖子

0

粉丝