I2s To I2c
I2s To I2c
h>
#include <SPIFFS.h>
#define I2S_WS 15
#define I2S_SD 13
#define I2S_SCK 2
File file;
void setup() {
Serial.begin(115200);
SPIFFSInit();
i2sInit();
void loop() {
void SPIFFSInit(){
if(!SPIFFS.begin(true)){
while(1) yield();
SPIFFS.remove(filename);
if(!file){
byte header[headerSize];
wavHeader(header, FLASH_RECORD_SIZE);
file.write(header, headerSize);
listSPIFFS();
void i2sInit(){
i2s_config_t i2s_config = {
.sample_rate = I2S_SAMPLE_RATE,
.bits_per_sample = i2s_bits_per_sample_t(I2S_SAMPLE_BITS),
.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
.communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_I2S |
I2S_COMM_FORMAT_I2S_MSB),
.intr_alloc_flags = 0,
.dma_buf_count = 64,
.dma_buf_len = 1024,
.use_apll = 1
};
.bck_io_num = I2S_SCK,
.ws_io_num = I2S_WS,
.data_out_num = -1,
.data_in_num = I2S_SD
};
i2s_set_pin(I2S_PORT, &pin_config);
uint32_t j = 0;
uint32_t dac_value = 0;
d_buff[j++] = 0;
int flash_wr_size = 0;
size_t bytes_read;
flash_wr_size += i2s_read_len;
file.close();
free(i2s_read_buff);
i2s_read_buff = NULL;
free(flash_write_buff);
flash_write_buff = NULL;
listSPIFFS();
vTaskDelete(NULL);
printf("======\n");
if ((i + 1) % 8 == 0) {
printf("\n");
printf("======\n");
header[0] = 'R';
header[1] = 'I';
header[2] = 'F';
header[3] = 'F';
header[8] = 'W';
header[9] = 'A';
header[10] = 'V';
header[11] = 'E';
header[12] = 'f';
header[13] = 'm';
header[14] = 't';
header[16] = 0x10;
header[17] = 0x00;
header[18] = 0x00;
header[19] = 0x00;
header[20] = 0x01;
header[21] = 0x00;
header[22] = 0x01;
header[23] = 0x00;
header[24] = 0x80;
header[25] = 0x3E;
header[26] = 0x00;
header[27] = 0x00;
header[28] = 0x00;
header[29] = 0x7D;
header[30] = 0x00;
header[31] = 0x00;
header[32] = 0x02;
header[33] = 0x00;
header[34] = 0x10;
header[35] = 0x00;
header[36] = 'd';
header[37] = 'a';
header[38] = 't';
header[39] = 'a';
void listSPIFFS(void) {
Serial.println(FPSTR(line));
Serial.println(FPSTR(line));
if (!root) {
return;
if (!root.isDirectory()) {
Serial.println(F("Not a directory"));
return;
while (file) {
if (file.isDirectory()) {
Serial.print("DIR : ");
Serial.print(fileName);
} else {
file = root.openNextFile();
Serial.println(FPSTR(line));
Serial.println();
delay(1000);