命令を見るとtone系なので「あれ、せっかくのスピーカーなのにビープだけ?」って思ったんですが、回路図を見るとGPIO25がアンプ入力につながってます。
ってことで、下記の通り初期化して
void set_16k_16() { i2s_set_pin(I2S_NUM, NULL); i2s_config_t i2s_config; i2s_config.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_PDM); // Only TX i2s_config.sample_rate = 16000; i2s_config.bits_per_sample = BITS_PER_SAMPLE; i2s_config.channel_format = I2S_CHANNEL_FMT_ONLY_RIGHT; //right channels // i2s_config.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT; //right left i2s_config.communication_format = I2S_COMM_FORMAT_PCM; i2s_config.dma_buf_count = 4; i2s_config.dma_buf_len = 1024; i2s_config.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1; //Interrupt level 1 i2s_driver_install(I2S_NUM, &i2s_config, 0, NULL); }
これつかって PCMデータ(符号なし16ビット)を渡すと音声出ますね。
i2s_write_bytes(I2S_NUM, (const char *)ching, sizeof(ching), portMAX_DELAY); i2s_zero_dma_buffer(I2S_NUM);
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。