您尚未登录。

楼主 #1 2018-09-20 11:39:01

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

ESP32 MIC采集的音频数据怎么保存到SD卡?

ESP32 MIC采集的音频数据怎么保存到SD卡?看到代码中有fopen("/sdcard/rec_debug_1.wav", "w+");创建音频操作,为什么会失败?

离线

#2 2018-09-20 12:01:22

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: ESP32 MIC采集的音频数据怎么保存到SD卡?

检查你的卡有没有问题,换一张卡试一试. 或者格式化一下, 还有看下有没有写保护。





离线

楼主 #3 2018-09-20 13:46:01

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

Re: ESP32 MIC采集的音频数据怎么保存到SD卡?

格式化了,也不行,需要配置什么吗?我是在duero用例中创建的,看到ESP-ADF中有其他地方在使用fopen("/sdcard/**.wav", "w+");方式,
rec_config_t eng = DEFAULT_REC_ENGINE_CONFIG();
    eng.evt_cb = rec_engine_cb;
    eng.open = recorder_pipeline_open;
    eng.close = recorder_pipeline_close;
    eng.fetch = recorder_pipeline_read;
    rec_engine_create(&eng);
    int retry_time = 1000 / portTICK_PERIOD_MS;
    int retry_num = 1;
    retry_login_timer = xTimerCreate("tm_duer_login", retry_time,
                                     pdFALSE, NULL, retry_login_timer_cb);
    FILE *file = NULL;
//#if RECORD_DEBUG
#if 1
    file = fopen("/sdcard/rec_debug_1.wav", "w+");
    if (NULL == file) {
        //ESP_AUDIO_LOGW(TAG, "open rec_debug_1.wav failed,[%d]", __LINE__);
        ESP_LOGE(TAG, "open rec_debug_1.wav failed,[%d]", __LINE__);
    }
    else
    {
        ESP_LOGE(TAG, "open rec_debug_1.wav Success,[%d]", __LINE__);
    }

离线

楼主 #4 2018-09-20 13:57:30

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

Re: ESP32 MIC采集的音频数据怎么保存到SD卡?

我用pipeline_wav_sdcard用了测试,能够正常录音到SD卡,难道ESP32不支持fopen方式保存文件?

离线

#5 2018-09-20 14:21:56

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: ESP32 MIC采集的音频数据怎么保存到SD卡?

fopen 肯定是可以, 但是前面要挂载文件系统到VFS, 你试一试这个demo:

https://github.com/espressif/esp-idf/blob/master/examples/storage/sd_card/main/sd_card_example_main.c





离线

楼主 #6 2018-09-20 17:04:00

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

Re: ESP32 MIC采集的音频数据怎么保存到SD卡?

@晕哥 感谢指导,刚测试了上面的用例,报出挂载文件系统 错误,你遇到过这个问题吗?
(217) boot: Disabling RNG early entropy source...
I (222) cpu_start: Pro cpu up.
I (226) cpu_start: Starting app cpu, entry point is 0x40080ecc
I (0) cpu_start: App cpu up.
I (236) heap_init: Initializing. RAM available for dynamic allocation:
I (243) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (249) heap_init: At 3FFB3278 len 0002CD88 (179 KiB): DRAM
I (256) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (262) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (268) heap_init: At 40089B5C len 000164A4 (89 KiB): IRAM
I (275) cpu_start: Pro cpu start user code
I (293) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (294) example: Initializing SD card
I (294) example: Using SDMMC peripheral
I (294) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
E (334) sdmmc_sd: sdmmc_check_scr: send_scr returned 0xffffffff
E (334) example: Failed to mount filesystem. If you want the card to be formatted, set format_if_mount_failed = true.

离线

#7 2018-09-20 17:05:29

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: ESP32 MIC采集的音频数据怎么保存到SD卡?

换卡试一试,发了命令未回复。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn