#ifndef __DRV_AW816_H #define __DRV_AW816_H #include #include "at32f403a_407.h" /* AW816 挂接在硬件 I2C1 上(PB6=SCL / PB7=SDA,与 AD85020B 共用同一总线) I2C1 的初始化由 wk_i2c1_init() 完成(或复用 AD85020B 的 I2C 初始化)。 */ /* 器件地址:7 位地址 0x5A。 写地址 = 0x5A<<1 = 0xB4,读地址 = 0xB5。 AT32 官方 i2c_application 库的 i2c_master_transmit/receive 期望 8 位格式地址 (内部做 &0xFE / |0x01),所以直接传 0xB4 / 0xB5。 */ #define AW816_DEV_ADDR 0x5A /* 7 位地址 */ #define AW816_WR_ADDR 0xB4 /* 写地址(8 位格式) */ #define AW816_RD_ADDR 0xB5 /* 读地址(8 位格式) */ #define AW816_I2C_TIMEOUT 1000 /* I2C 外设:I2C1 */ #define AW816_I2C I2C1 /* 函数声明 */ extern void AW816_Init(void); extern void AW816_Set_Volume(int16_t vol); /* 音量 -9000 ~ 1200 */ extern void AW816_Set_Reverb(uint8_t rev); /* 混响 0~100 */ extern uint8_t AW816_Read_Cmd(uint8_t ctrl, uint8_t *out_lo, uint8_t *out_hi); #endif