nanoFramework 中的 ESP32 I2S

Posted

技术标签:

【中文标题】nanoFramework 中的 ESP32 I2S【英文标题】:ESP32 I2S in nanoFramework 【发布时间】:2021-11-23 18:14:26 【问题描述】:

我正在尝试复制我为 sampling sound data on the ESP32 using I2S 找到的 C++ 项目,但使用的是 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?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

太棒了!我准备试试看!

以上是关于nanoFramework 中的 ESP32 I2S的主要内容,如果未能解决你的问题,请参考以下文章

快速入门 .NET nanoFramework 开发 ESP32-Pico 应用

炫酷 RGB 之.NET nanoFramework 点灯大师

c#(nanoframework)安装单片机环境;如何使用c#写类似于c的单片机驱动

NanoFramework 以 AP 模式扫描 wifi 网络

ESP32学习笔记之I2C总线

MicroPython ESP32扫描I2C设备地址