#ifndef BUZZER_PLAY_H__ #define BUZZER_PLAY_H__ //#define BUZZER_PLATFORM_16BIT #ifdef BUZZER_PLATFORM_16BIT typedef unsigned char Buzzer_uint8_t; typedef unsigned int Buzzer_uint16_t; typedef unsigned long Buzzer_uint32_t; #else typedef unsigned char Buzzer_uint8_t; typedef unsigned short Buzzer_uint16_t; typedef unsigned int Buzzer_uint32_t; typedef unsigned long long Buzzer_uint64_t; #endif /*************************************************************************************/ /*当前文件版本号*/ #define BUZZER_VERSION_NUM 0X20U /*操作函数返回状态*/ typedef enum { BUZZER_OPERATE_SUCCESS = 0UL, /*函数操作成功*/ BUZZER_OPERATE_FAIL, /*函数操作失败*/ } Buzzer_Operate_Type_en_t; /*正极控制函数 1:打开 0:关闭*/ typedef Buzzer_Operate_Type_en_t (*Buzzer_Positive_Handle)(Buzzer_uint8_t u8BuzzerOnOff); /*负极设置函数 u16BuzzerFre :频率 HZ 。 u16BuzzerDuty :占空比 千分之一精度*/ typedef Buzzer_Operate_Type_en_t (*Buzzer_Negative_Set)(Buzzer_uint16_t u16BuzzerFre, Buzzer_uint16_t u16BuzzerDuty); typedef struct { Buzzer_Positive_Handle pfnBuzzerPositiveHandle; Buzzer_Negative_Set pfnBuzzerNegativeSet; } Buzzer_Init_st_t; typedef struct { Buzzer_uint16_t u16BuzzerFrequency; /*频率 HZ*/ Buzzer_uint16_t u16BuzzerDuty; /*占空比 千分之一精度*/ Buzzer_uint16_t u16BuzzerChargeTime; /*充电时间 ms */ Buzzer_uint16_t u16BuzzerPlayONTime; /*正常播放时间 ms 需要一直播放时填 0xFFFFU */ Buzzer_uint16_t u16BuzzerFadeTime; /*淡出时间 ms */ } Buzzer_Attribute_st_t; /*************************************************************************************/ /*KL30和每次唤醒时都调用一次*/ extern void Buzzer_Play_Init(Buzzer_Init_st_t *pstBuzzerInit); /*声音播放计时函数 , 几毫秒调用一次就传入多少*/ extern void Buzzer_Play_Time_Count(Buzzer_uint8_t u8TimeBase); /*获取当前播放状态函数 0:空闲 非0 :忙*/ extern Buzzer_uint8_t Buzzer_Get_Status(void); /*开始播放函数*/ extern Buzzer_Operate_Type_en_t Buzzer_Start_Play(const Buzzer_Attribute_st_t *pstBuzzerAttribute); /*停止播放函数*/ extern Buzzer_Operate_Type_en_t Buzzer_Stop_Play(void); /*实时调用*/ extern void Buzzer_Play_Service(void); /*确保空闲状态时调用,休眠初始化*/ extern Buzzer_Operate_Type_en_t Buzzer_Play_Sleep_Init(void); /*读取版本号*/ extern Buzzer_uint8_t Buzzer_Play_Version_Read(void); /*************************************************************************************/ #endif