首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用ESP32对模拟信号进行不同速率的I2S采样

用ESP32对模拟信号进行不同速率的I2S采样
EN

Stack Overflow用户
提问于 2021-01-14 19:21:41
回答 1查看 834关注 0票数 1

我要读高频率的书。模拟信号数据从一个ADC1通道和读取低频率。来自其他ADC1引脚的数据。

我用I2S作为高频。数据读取,运行完美,但一旦I2S配置完毕,所有其他ADC1引脚只读取4095。

什么是正确的处理我的要求?

因为wifi不能使用ADC2。

代码摘录:

代码语言:javascript
复制
  void readerTask(void *param) {

    size_t bytesRead = 0;
    while(true) {
      // Get ADC data from DMA buffer
      i2s_read(I2S_NUM_0, buf, sizeof(buf), &bytesRead, portMAX_DELAY);

      // prevent the data getting corrupted
      i2s_adc_disable(I2S_NUM_0);
    
      /* data processing */

      delay(30);
      i2s_adc_enable(I2S_NUM_0);
    }
  }

  void setup() {
    i2s_config_t i2s_config = {
        .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_ADC_BUILT_IN),
        .sample_rate = 8000,
        .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
        .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
        .communication_format = I2S_COMM_FORMAT_I2S_LSB,
        .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,
        .dma_buf_count = 2,
        .dma_buf_len = 1024,
        .use_apll = false,
        .tx_desc_auto_clear = false,
        .fixed_mclk = 0};
    
    //install and start i2s driver
    i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
    
    //init ADC pad
    i2s_set_adc_mode(ADC_UNIT_1, ADC1_CHANNEL_0);
    
    // enable the ADC
    i2s_adc_enable(I2S_NUM_0);
    
    // start a task to read samples from I2S
    xTaskCreatePinnedToCore(readerTask, "Reader Task", 2048, NULL, 1, NULL, 0);
  }

  void loop()
  {
    EVERY_N_MILLISECONDS( 100 ) { 
      // read low freq. data
      int test = analogRead(34);   // will always read 4095
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2022-02-11 10:31:13

你需要:

代码语言:javascript
复制
  i2s_adc_disable(I2S_NUM_0);
  i2s_driver_uninstall(I2S_NUM_0);
  analogRead(34);
  i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
  i2s_set_adc_mode(ADC_UNIT_1, ADC1_CHANNEL_0);
  i2s_adc_enable(I2S_NUM_0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65725609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档