#include "bsp_beep.h" #include "tim.h" /** * @brief 蜂鸣器初始化(TIM3 CH1, PC6, 2.7KHz) */ void BEEP_Init(void) { // 假设 CubeMX 已配置好 TIM3 CH1 (PC6) 为 PWM 输出,频率2.7KHz // 这里只需启动 PWM HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); } /** * @brief 打开蜂鸣器(输出PWM) */ void BEEP_On(void) { __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, __HAL_TIM_GET_AUTORELOAD(&htim3) / 3); // 50% 占空比 } /** * @brief 关闭蜂鸣器(无PWM输出) */ void BEEP_Off(void) { __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, 0); } /** * @brief 翻转蜂鸣器状态 */ void BEEP_Toggle(void) { uint32_t cmp = __HAL_TIM_GET_COMPARE(&htim3, TIM_CHANNEL_1); if (cmp == 0) { BEEP_On(); } else { BEEP_Off(); } }