登录/注册

esp32的i2s_in_done_int

更多

在 ESP32 的 I2S(Inter-IC Sound)模块中,i2s_in_done_int 是一个与输入(接收)数据相关的中断事件,表示 I2S 输入(接收)操作完成。以下是详细说明:


作用

当 I2S 输入模式(例如从麦克风或其他设备接收音频数据)的 DMA 缓冲区被填满时,该中断会被触发。开发者可以在此中断的服务函数中处理数据(例如读取、存储或转发),并重新填充缓冲区以避免数据丢失。


典型使用场景

  1. 音频采集:如通过麦克风实时录音。
  2. 流数据传输:连续接收来自外部设备(如传感器、ADC)的数据流。

关键实现步骤(ESP-IDF 框架)

  1. 配置 I2S:设置采样率、位数、DMA 缓冲区大小等参数。
  2. 注册中断服务函数:绑定 i2s_in_done_int 中断,在数据接收完成时触发。
  3. 处理数据:在中断中读取已填满的缓冲区,并重新提交缓冲区以持续接收数据。

示例代码片段

#include "driver/i2s.h"

// 中断服务函数(简化逻辑)
static void IRAM_ATTR i2s_in_isr(void *arg) {
    if (I2S0.int_st.out_done) { // 检查是否为输入完成中断
        // 1. 读取填满的 DMA 缓冲区
        size_t bytes_read;
        i2s_read(I2S_NUM_0, buffer, BUFFER_SIZE, &bytes_read, 0);

        // 2. 处理数据(例如写入 SD 卡、网络发送等)
        process_audio_data(buffer, bytes_read);

        // 3. 重新提交缓冲区(根据具体 API 实现)
    }
}

// 初始化 I2S
void setup_i2s() {
    i2s_config_t i2s_config = {
        .mode = I2S_MODE_MASTER | I2S_MODE_RX, // 输入模式
        .sample_rate = 16000,
        .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
        .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
        .dma_buf_count = 4,
        .dma_buf_len = 1024,
        .use_apll = false
    };
    i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);

    // 注册中断处理函数
    esp_intr_alloc(ETS_I2S0_INTR_SOURCE, ESP_INTR_FLAG_LEVEL1, i2s_in_isr, NULL, NULL);
}

注意事项


如果需要更具体的实现细节(如 Arduino 框架或其他配置),可以提供更多上下文,我会进一步补充说明!

ESP32 I2S音频总线学习笔记(二):I2S读取INMP441音频数据

在这上一篇文章中,我们介绍了ESP32 I2S音频总线的相关知识,简要了解了什么是I2S总线、它的通信格式,以及相关的底层API函数,这篇文章将

2025-10-23 19:55:02

ESP32输出的I2S数据移位的原因?

ESP32 PICO D4 ESP-IDF 4.3-rc 我在 ESP32 中使用

2024-06-14 06:12:32

ESP32-WROOM-32-N8

ESP32-WROOM-32-N8

2023-04-06 23:33:39

乐鑫ESP32-S2-WROVER-I-V1.6参考设计

乐鑫ESP32-S2-WROVER-I-V1.6参考设计r1.0ESP32-S2是一款高度集成、高性价比、低功耗、主打安全的单核Wi-FiSoC,具备强大的功能和丰富的IO接口。

资料下载 华秋商城 2022-10-19 16:13:10

乐鑫ESP32-S2-WROOM_&I技术规格书

乐鑫ESP32-S2-WROOM_&_ESP32-S2-WROOM-I_技术规格书ESP32-S2是一款高度集成、高性价比、低功耗、主打安全的单核Wi-FiSoC,具备强大的功能和丰富的IO接口。

资料下载 华秋商城 2022-10-19 16:13:05

乐鑫ESP32-S2-WROVER_&I技术规格书

乐鑫ESP32-S2-WROVER_&_ESP32-S2-WROVER-I_技术规格书ESP32-S2是一款高度集成、高性价比、低功耗、主打安全的单核Wi-FiSoC,具备强大的功能和丰富的IO接口。

资料下载 华秋商城 2022-10-19 16:13:01

ESP32 S2 WROVER/ESP32 S2 WROVER I技术规格书

电子发烧友网站提供《ESP32 S2 WROVER/ESP32 S2 W

资料下载 李丹 2022-09-23 11:48:17

ESP32 S2 WROOM/ESP32 S2 WROOM I技术规格书

电子发烧友网站提供《ESP32 S2 WROOM/ESP32 S2 WR

资料下载 佚名 2022-09-23 11:31:29

ESP32-S3-MINI-1-N8

ESP32-S3-MINI-1-N8

2023-04-06 23:31:21

ESP32-S3-WROOM-1U-N4

ESP32-S3-WROOM-1U-N4

2023-04-06 23:08:04

ESP32-WROOM-32D-N8

ESP32-WROOM-32D-N8

2023-03-29 22:42:58

ESP32-WROOM-32U-N8

ESP32-WROOM-32U-N8

2023-03-29 22:42:58

ESP32-S3-WROOM-1-N8R8

ESP32-S3-WROOM-1-N8R8

2023-03-29 21:34:19

ESP32-C3-MINI-1-H4

ESP32-C3-MINI-1-H4

2023-03-29 16:30:23

ESP32-S0WD

ESP32-S0WD

2023-03-28 13:10:29
7天热门专题 换一换
相关标签