ESP32_Remote_MIC icon indicating copy to clipboard operation
ESP32_Remote_MIC copied to clipboard

编译错误: 'i2s_read_bytes' was not declared in this scope

Open 00make opened this issue 3 years ago • 3 comments

C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp: In function 'void I2S_Init(i2s_mode_t, int, i2s_bits_per_sample_t)':
C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp:9:49: warning: 'I2S_COMM_FORMAT_I2S' is deprecated [-Wdeprecated-declarations]
     .communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB),
                                                 ^~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/hal/esp32/include/hal/i2s_ll.h:30,
                 from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/hal/include/hal/i2s_hal.h:28,
                 from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/driver/include/driver/i2s.h:16,
                 from C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.h:4,
                 from C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp:1:
C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/hal/include/hal/i2s_types.h:70:5: note: declared here
     I2S_COMM_FORMAT_I2S       __attribute__((deprecated)) = 0x01, /*!< I2S communication format I2S, correspond to `I2S_COMM_FORMAT_STAND_I2S`*/
     ^~~~~~~~~~~~~~~~~~~
C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp:9:71: warning: 'I2S_COMM_FORMAT_I2S_MSB' is deprecated [-Wdeprecated-declarations]
     .communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB),
                                                                       ^~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/hal/esp32/include/hal/i2s_ll.h:30,
                 from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/hal/include/hal/i2s_hal.h:28,
                 from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/driver/include/driver/i2s.h:16,
                 from C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.h:4,
                 from C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp:1:
C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0/tools/sdk/esp32/include/hal/include/hal/i2s_types.h:71:5: note: declared here
     I2S_COMM_FORMAT_I2S_MSB   __attribute__((deprecated)) = 0x01, /*!< I2S format MSB, (I2S_COMM_FORMAT_I2S |I2S_COMM_FORMAT_I2S_MSB) correspond to `I2S_COMM_FORMAT_STAND_I2S`*/
     ^~~~~~~~~~~~~~~~~~~~~~~
C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp: In function 'int I2S_Read(char*, int)':
I2S.cpp:34:10: error: 'i2s_read_bytes' was not declared in this scope
   return i2s_read_bytes(I2S_NUM_0, (char *)data, numData, portMAX_DELAY);
          ^~~~~~~~~~~~~~
C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp:34:10: note: suggested alternative: 'pgm_read_byte'
   return i2s_read_bytes(I2S_NUM_0, (char *)data, numData, portMAX_DELAY);
          ^~~~~~~~~~~~~~
          pgm_read_byte
C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp: In function 'void I2S_Write(char*, int)':
I2S.cpp:38:5: error: 'i2s_write_bytes' was not declared in this scope
     i2s_write_bytes(I2S_NUM_0, (const char *)data, numData, portMAX_DELAY);
     ^~~~~~~~~~~~~~~
C:\Users\Administrator\Documents\GitHub\ESP32_Remote_MIC\esp32\esp32_remote_mic\I2S.cpp:38:5: note: suggested alternative: 'i2s_write_expand'
     i2s_write_bytes(I2S_NUM_0, (const char *)data, numData, portMAX_DELAY);
     ^~~~~~~~~~~~~~~
     i2s_write_expand
"WiFi.h" 对应多个库
 已使用: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0\libraries\WiFi
 未使用:C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
'i2s_read_bytes' was not declared in this scope

00make avatar Sep 15 '21 19:09 00make

1.开发板是否选择 ESP32 DEV Module ? 2.我用的是arduino-esp32 版本 1.0.6, 其它版本如果有调整API需要适当修改.

lixy123 avatar Sep 17 '21 08:09 lixy123

虽然问题还没有解决,但确定了是 I2S driver 更新了导致的问题

我的邮箱: , 目前我在尝试给ESP32模块录音同时加上存储功能,服务器也可以获取录音文件数据,我的邮箱: , 非常希望作者您可以联系我一下!

https://esp32.com/viewtopic.php?t=21713
Hello! I'm doing a project in which I use the ESP8266Audio library. At the beginning I started using Arduino IDE, but I have recently moved to PlatformIO in order to use modified idf libraries. The thing is: I2S driver has been updated and the funcion
int i2s_write_bytes(i2s_port_ti2s_num, const void *src, size_t size, TickType_t ticks_to_wait) is deprecated, so in documentation it says Use ‘i2s_write’ instead, which is the following:
esp_err_t i2s_write(i2s_port_ti2s_num, const void *src, size_t size, size_t *bytes_written, TickType_t ticks_to_wait)

Now, the ESP8266Audio library is implemented using the i2s_write_bytes function so when I compile it says it is not declared, I must change the function for the i2s_write one, but I can´t find how to make the switch. The main problem is that ESP8266Audio uses:
return i2s_write_bytes((i2s_port_t)portNo, (const char *)&s32, sizeof(uint32_t), 0);, so it returns the amount of bytes written, and now I have to make the same with the other one, which returns an OK, and the amount of bytes become an input parameter instead of output.

Anyone knows something about this or how to use the i2s_write instead of i2s_write_bytes?

Thank you very much!

00make avatar Sep 22 '21 19:09 00make

我也遇到了一样的这个API问题,我的板子是wroom,请问应该如何更新API呢

lijinlunbeng avatar Sep 25 '22 22:09 lijinlunbeng