0

我正在尝试复制我发现的一个 C++ 项目,用于使用 I2S 对 ESP32 上的声音数据进行采样,但使用 C# 和 nanoFramework。

在 ADCSampler.cpp 文件中,加载了以下标头

#include <Arduino.h>
#include "driver/i2s.h"
#include "driver/adc.h"

nanoframework 具有命名空间Windows.Devices.Adc,我理解它或多或少与driver/adc.h.

但是我找不到任何与 I2S 相同的东西,有一个I2C库

我正在努力的具体代码是:

void ADCSampler::configureI2S()
{
    //init ADC pad
    i2s_set_adc_mode(m_adcUnit, m_adcChannel);
    // enable the adc
    i2s_adc_enable(getI2SPort());
}

我发现您可以在 nanoFramework 中配置 ADC,如下所示:

Configuration.SetPinFunction(35, DeviceFunction.I2S1_MDATA_IN);

并获得 ADC 通道

..
 AdcChannel _adcChannel7;
..
..
 _adc = AdcController.GetDefault();
 _adcChannel7 = _adc.OpenChannel(7);//GPIO pin 35 is adc channel 7
..
..
_mV = _adcChannel7.ReadValue();
..

但这大约是我能想到的。

我对微控制器和 ESP32 平台还很陌生,所以仍然学到很多东西。

我错过了什么还是仍在进行中?

是否有其他选项可以代替 I2S?

4

1 回答 1

1

你越来越近了!一些澄清:

  1. 尽管名称空间看起来很相似,但必须将其添加到构建中。它正在调用向托管应用程序公开 ADC 功能所需的其他函数。
  2. 在当前版本中,我们使用的是预编译的 ESP32 IDF 库,而 I2S 不是其中的一部分。这意味着您将无法使用任何与 I2S 相关的东西。好消息是,我们将在本周发布一个新版本,其中包括 I2S 和一个全新的 I2S C# 库,它正在开发中,不久后将可用。

因此,请关注我们的 Twitter 帐户或加入 Discord 社区,以便您收到所有通知。

于 2021-10-04T08:24:40.993 回答