#ifndef __USER_DRIVER_H #define __USER_DRIVER_H #include "yc11xx_pwm.h" #include "system.h" #define firmware_version "YC1166_V1.0.0" // 固件版本号 #define firmware_is_mic 0 //是否支持mic #define userset_mac_en 1 //是否设置mac地址 量产时一定关闭 否则批量烧录时设置不了mac地址 /*双面板大板io*/ #define PWM_CHANCE_B (25) #define PWM_CHANCE_R (24) #define PWM_CHANCE_G (0) //试产单面板 //#define PWM_CHANCE_B (24) //#define PWM_CHANCE_R (25) //#define PWM_CHANCE_G (0) /*小板io*/ //#define PWM_CHANCE_B (24) //#define PWM_CHANCE_R (25) //#define PWM_CHANCE_G (0) #define BLE_SEND_HANDLE 0x001e #define NEC_ENABLE 0 #define ADC_GET_GPIOx 23 #define NEC_GPIO 31 #define FREQUENCY_DIVISION_0 0x0 //48M #define FREQUENCY_DIVISION_1 0x1 //24M #define FREQUENCY_DIVISION_2 0x2 //12M #define FREQUENCY_DIVISION_3 0x3 //6M #define FREQUENCY_DIVISION_4 0x4 //3M #define FREQUENCY_DIVISION_5 0x5 //1.5M #define FREQUENCY_DIVISION_6 0x6 //0.75M #define FREQUENCY_DIVISION_7 0x7 //0.375 #define IS_FREQUENCY_DIVISION(FREQUENCY) ((FREQUENCY <= FREQUENCY_DIVISION_7)) //#define HAL_MIN_48M_MIN_FREQUENCY ((48000000)/65535) #define HAL_MIN_48M_MIN_FREQUENCY ((48000000)/60000) #define HAL_MAX_48M_MAX_FREQUENCY (48000000>>1) #define HAL_MIN_24M_MIN_FREQUENCY ((24000000)/60000) #define HAL_MAX_24M_MAX_FREQUENCY (24000000>>1) #define HAL_MIN_12M_MIN_FREQUENCY ((12000000)/60000) #define HAL_MAX_12M_MAX_FREQUENCY (12000000>>1) #define HAL_MIN_6M_MIN_FREQUENCY ((6000000)/60000) #define HAL_MAX_6M_MAX_FREQUENCY (6000000>>1) #define HAL_MIN_3M_MIN_FREQUENCY ((3000000)/60000) #define HAL_MAX_3M_MAX_FREQUENCY (3000000>>1) #define HAL_MIN_1500K_MIN_FREQUENCY ((1500000)/60000) #define HAL_MAX_1500K_MAX_FREQUENCY (1500000>>1) #define HAL_MIN_750K_MIN_FREQUENCY ((750000)/60000) #define HAL_MAX_750K_MAX_FREQUENCY (750000>>1) #define HAL_MIN_375K_MIN_FREQUENCY ((375000)/65535) #define HAL_MAX_375K_MAX_FREQUENCY (375000>>1) void delay_us(uint32_t num); void Hal_Set_OutPWM(GPIO_NUM gpio, PWM_ChxTypeDef pwm_channel,uint32_t frequecy,uint32_t percent); void audio_dma_handle(void); enum //pwm { RED_PWM_CHANNEL, GREEN_PWM_CHANNEL, BLUE_PWM_CHANNEL, }; typedef struct SYSTEM_TIME_HANDLE { void (*init)(void); void (*run_tickcnt)(void); unsigned int (*get_run_ticks)(void); unsigned int (*get_run_tickms)(void); }sys_time_handle_t; extern sys_time_handle_t sys_time_handle; void u_ble_data_send(uint8_t *send_data, uint8_t send_len); void flash_write_data (uint8_t *buffer, uint32_t address, uint32_t len); void flash_read_data (uint8_t *buffer, uint32_t address, uint32_t len); void flash_erase_sector(uint32_t address); extern volatile uint8_t ble_connected_state; extern volatile uint8_t g_ir_recv_done_flag; void user_set_pwmout_dutycycle(uint8_t channel,uint32_t duty); void firmware_mic_check_init(void);//判断是否支持mic功能 uint8_t get_mic_audio_value(void); //获取mic adc检测数据 uint16_t get_shortout_adc_value(void);//获取短路保护引脚的adc值 void user_driver_init(void); //用户驱动初始化 uint8_t *get_decode_value(void); void read_otp_values(void); #endif