折腾好几天了,真搞不定了,哪位有经验的大佬帮我搞定 100 元红包奉上。
我买的是一个 esp32s3-n16r8 的开发板,板子上集成了一个 i2s 麦克风,我外接了一个 i2s 小功放并接了一个喇叭,运行 esp32 adf 官方语音唤醒识别示例 https://github.com/espressif/esp-adf/tree/master/examples/speech_recognition/wwe ,就是 master 分支代码,idf 版本是 4.4.1 。
但运行后,总是崩溃在 i2s_stream_init 函数,main 函数中 setup_player 和 start_recorder 里面都会调用这个函数,setup_player 先执行,调用没问题,start_recorder 中调用 i2s_stream_init 时单片机 reset 重启。
跟踪 i2s_stream_init 发现他会调用 heap_caps_malloc ,并且就在这里出问题,接下来的代码没有执行,s3 芯片是有外部 SPIRAN ,我都配置好了,并且 mem test 也显示 ok ,esp_get_free_heap_size 显示也有 8M 多可以用。
如果我把 setup_player 注释掉,只运行 start_recorder ,i2s_stream_init 可以成功,但也不太正常,几秒后也会崩溃,实在搞不清为什么了 :D
wx jhzzzz, qq 5488232
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.