diff --git a/main/audio_codecs/es8388_audio_codec.cc b/main/audio_codecs/es8388_audio_codec.cc index 47522a75..432f4894 100644 --- a/main/audio_codecs/es8388_audio_codec.cc +++ b/main/audio_codecs/es8388_audio_codec.cc @@ -194,4 +194,12 @@ int Es8388AudioCodec::Write(const int16_t* data, int samples) { ESP_ERROR_CHECK_WITHOUT_ABORT(esp_codec_dev_write(output_dev_, (void*)data, samples * sizeof(int16_t))); } return samples; -} \ No newline at end of file +} + +void Es8388AudioCodec::WriteReg(uint8_t reg_addr, uint8_t data) { + if (ctrl_if_ != nullptr) { + ctrl_if_->write_reg(ctrl_if_, reg_addr, 1, &data, 1); + } else { + ESP_LOGE(TAG, "Control interface is not initialized"); + } +} diff --git a/main/audio_codecs/es8388_audio_codec.h b/main/audio_codecs/es8388_audio_codec.h index 10807a41..f9df32c8 100644 --- a/main/audio_codecs/es8388_audio_codec.h +++ b/main/audio_codecs/es8388_audio_codec.h @@ -32,6 +32,8 @@ public: virtual void SetOutputVolume(int volume) override; virtual void EnableInput(bool enable) override; virtual void EnableOutput(bool enable) override; + + void WriteReg(uint8_t reg_addr, uint8_t data); }; #endif // _ES8388_AUDIO_CODEC_H diff --git a/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc b/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc index 6af32ce1..764803f4 100644 --- a/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc +++ b/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc @@ -169,6 +169,8 @@ public: GPIO_NUM_NC, AUDIO_CODEC_ES8388_ADDR); audio_codec->SetOutputVolume(AUDIO_DEFAULT_OUTPUT_VOLUME); //设置默认音量 + audio_codec->WriteReg(0x30, AUDIO_ADD_OUTPUT_VOLUME); + audio_codec->WriteReg(0x31, AUDIO_ADD_OUTPUT_VOLUME);//音量增益设置 } return audio_codec; } @@ -178,4 +180,4 @@ public: } }; -DECLARE_BOARD(atk_dnesp32s3); \ No newline at end of file +DECLARE_BOARD(atk_dnesp32s3); diff --git a/main/boards/atk-dnesp32s3/config.h b/main/boards/atk-dnesp32s3/config.h index 8cde6207..cbe72f7a 100644 --- a/main/boards/atk-dnesp32s3/config.h +++ b/main/boards/atk-dnesp32s3/config.h @@ -2,11 +2,13 @@ #ifndef _BOARD_CONFIG_H_ #define _BOARD_CONFIG_H_ + #include #define AUDIO_INPUT_SAMPLE_RATE 24000 #define AUDIO_OUTPUT_SAMPLE_RATE 24000 #define AUDIO_DEFAULT_OUTPUT_VOLUME 90 +#define AUDIO_ADD_OUTPUT_VOLUME 90 #define AUDIO_I2S_GPIO_MCLK GPIO_NUM_3 #define AUDIO_I2S_GPIO_WS GPIO_NUM_9