ESP32S3 ULP 唤醒部分片子无法唤醒的问题

在ESP32S3项目中遇到ULP(超低功耗处理器)无法唤醒的问题,官方提供的示例代码可能不适用于实际产品应用。文章深入分析了问题产生的原因,指出在某些板子上存在无法唤醒的情况,可能是由于ULP复位失败。通过在ulp主函数中添加特定的寄存器设置解决了该问题,但具体原因未得到原厂明确解释。这反映出ESP32S3用户较少,而国产MCU的快速发展。
摘要由CSDN通过智能技术生成

问题产生和描述

项目中使用ESP32S3 开发解决方案,其中涉及到低功耗部分,因为需求是长按唤醒,长按关机的需求,为保证良好的用户体验,需要弃用ulp.ULP 要在IDF4.4.4分支验证使用

参考乐鑫的ULP例子如下

static bool gpio_level = false;

/* this variable will be exported as a public symbol, visible from main CPU: */
bool gpio_level_previous = false;

int main (void)
{
   
    gpio_level = (bool)ulp_riscv_gpio_get_level(GPIO_NUM_0);
    gpio_level_previous = gpio_level;

    while(1) {
   
        gpio_level = (bool)ulp_riscv_gpio_get_level(GPIO_NUM_0);

        /* Wakes up the main CPU if pin changed its state */
        if(gpio_level != gpio_level_previous
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32 S3是一款基于Espressif平台的低功耗、高性能单片机,它集成了音频处理功能,可以用于添加语音唤醒功能到Arduino项目中。要在ESP32 S3上实现Arduino语音唤醒,你需要完成以下几个步骤: 1. **硬件准备**: - 硬件包括ESP32 S3开发板、麦克风模块和扬声器(如果需要反馈)。 - 需要连接一根模拟信号线将麦克风连接到ESP32的A0口。 2. **软件库安装**: - 安装Arduino IDE并更新至最新版本,然后安装适用于ESP32S3的第三方库,如`esp-adf`或`Tencent_AI_ASR`,它们包含了语音识别功能。 3. **编写代码**: - 使用库中的函数,设置录音模式,监听来自麦克风的声音输入。 - 使用语音识别算法分析接收到的音频数据,比如腾讯云智能语音服务(TTS)API或OpenSSL等本地的ASR库。 4. **语音唤醒词检测**: - 编写一个函数来识别预设的唤醒词,当听到这个关键词时开始后续的命令处理流程。 5. **命令响应**: - 如果唤醒词被成功识别,进入命令处理阶段,执行相应的Arduino程序逻辑。 ```cpp #include <Tencent_AI_ASR.h> // 初始化语音识别实例 Tencent::AI::ASR asr; void setup() { // 开始录音并检测唤醒词 asr.startRecord(); } void loop() { if (asr.isRecording()) { // 当检测到唤醒词停止录音 String result = asr.recognize(); // 获取识别结果 if (result == "唤醒词") { // 开始执行其他操作 processCommand(result); } } } // 对接收到的命令进行处理 void processCommand(String command) { // 根据命令做相应操作... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值