86 lines
1.8 KiB
C
86 lines
1.8 KiB
C
#include "bsp_buzzer.h"
|
|
|
|
/*开关控制电平,使用同一的电平控制方式*/
|
|
#define BUZZER_GPIO_ON GPIO_PIN_SET
|
|
#define BUZZER_GPIO_OFF GPIO_PIN_RESET
|
|
|
|
#define BUZZER_ON HAL_GPIO_WritePin (BUZZER_GPIO_Port, BUZZER_Pin, BUZZER_GPIO_ON)
|
|
#define BUZZER_OFF HAL_GPIO_WritePin (BUZZER_GPIO_Port, BUZZER_Pin, BUZZER_GPIO_OFF)
|
|
|
|
static void bsp_buzzer_init(void);
|
|
static void bsp_buzzer_task(void);
|
|
static void bsp_buzzer_set(u8 ch,u8 state);
|
|
static void bsp_buzzer_on(void);
|
|
static void bsp_buzzer_off(void);
|
|
static void bsp_buzzer_enable(void);
|
|
static void bsp_buzzer_disable(void);
|
|
|
|
bsp_buzzer_t buzzer =
|
|
{
|
|
.init = bsp_buzzer_init,
|
|
.task = bsp_buzzer_task,
|
|
.set.on = bsp_buzzer_on,
|
|
.set.off = bsp_buzzer_off,
|
|
.set.enable = bsp_buzzer_enable,
|
|
.set.disable = bsp_buzzer_disable,
|
|
};
|
|
|
|
bsp_buzzer_t *p_buzzer = &buzzer;
|
|
|
|
|
|
static bsp_buzzer_flash_data_t flash_data;
|
|
|
|
/*其他外设初始化后快速闪烁,提示初始化完成*/
|
|
static void bsp_buzzer_init(void)
|
|
{
|
|
BUZZER_OFF;
|
|
p_buzzer->p_flash_data = &flash_data;
|
|
}
|
|
|
|
static void bsp_buzzer_flash_data_save(void)
|
|
{
|
|
|
|
}
|
|
|
|
static void bsp_buzzer_task(void)
|
|
{
|
|
if(USR_DISABLE == p_buzzer->p_flash_data->sw)
|
|
{
|
|
BUZZER_OFF;
|
|
}
|
|
else if( USR_ON == p_buzzer->state)
|
|
{
|
|
BUZZER_ON;
|
|
}
|
|
else
|
|
{
|
|
BUZZER_OFF;
|
|
}
|
|
}
|
|
|
|
static void bsp_buzzer_on(void)
|
|
{
|
|
p_buzzer->state = USR_ON;
|
|
}
|
|
static void bsp_buzzer_off(void)
|
|
{
|
|
p_buzzer->state = USR_OFF;
|
|
}
|
|
static void bsp_buzzer_enable(void)
|
|
{
|
|
if(USR_ENABLE != p_buzzer->p_flash_data->sw)
|
|
{
|
|
p_buzzer->p_flash_data->sw = USR_ENABLE;
|
|
bsp_buzzer_flash_data_save();
|
|
}
|
|
}
|
|
|
|
static void bsp_buzzer_disable(void)
|
|
{
|
|
if(USR_DISABLE != p_buzzer->p_flash_data->sw)
|
|
{
|
|
p_buzzer->p_flash_data->sw = USR_DISABLE;
|
|
bsp_buzzer_flash_data_save();
|
|
}
|
|
}
|