#ifndef PWM_H #define PWM_H /* Includes ----------------------------------------------------------------- */ #include #include "bsp\bsp.h" #include /* Exported constants ------------------------------------------------------- */ /* Exported macro ----------------------------------------------------------- */ /* Exported types ----------------------------------------------------------- */ /* PWM通道 */ typedef enum { BSP_PWM_IMU_HEAT, BSP_PWM_BUZZER, } BSP_PWM_Channel_t; typedef struct { uint32_t timer; bool state; uint16_t beep_duration; // 蜂鸣持续时间(ms) uint16_t silent_duration; // 静默间隔时间(ms) float duty_cycle; // 占空比(0-1) } Buzzer_t; /* Exported functions prototypes -------------------------------------------- */ int8_t BSP_PWM_Start(BSP_PWM_Channel_t ch); int8_t BSP_PWM_Set(BSP_PWM_Channel_t ch, float duty_cycle); int8_t BSP_PWM_Stop(BSP_PWM_Channel_t ch); void Buzzer_Init(Buzzer_t* ctrl,uint16_t beep_duration,uint16_t silent_duration,float duty_cycle); void Buzzer_Control(Buzzer_t* ctrl, bool condition); #endif