nanoFramework - I2C 设备没有响应

问题描述

这里是 nanoframework 的新手,但在 sample code 之后,我无法使用我的 ESP32 MCU 获得 7 段显示器。

我使用的是 VS 2019。使用最新的 nanoframework 扩展 (2019.5.0.14)。我的项目很简单,使用这些包:

<package id="nanoFramework.CoreLibrary" version="1.10.1-preview.11" targetFramework="netnanoframework10" />
<package id="nanoFramework.Runtime.Events" version="1.9.0-preview.14" targetFramework="netnanoframework10" />
<package id="nanoFramework.Windows.Devices.I2c" version="1.4.1-preview.29" targetFramework="netnanoframework10" />

我什至尝试将代码简化为这样:

I2cDevice _display = I2cDevice.FromId("I2C1",new I2cConnectionSettings(0x70) { Busspeed = I2cBusspeed.FastMode });
_display.Write(new byte[] { 0x21 });

我尝试过的:

  • 验证 0x70 是正确的 I2C 总线地址(是的)
  • 在 Arudino IDE 中对示例项目使用相同的 7 段显示器和 MCU(工作正常)
  • 在 VS 中逐步调试以查看是否抛出任何错误(没有错误输出

我错过了什么?

解决方法

为了将来参考,为我解决问题的是将其他 GPIO 引脚(14 和 15)重新分配给 SDA/SCL:

Configuration.SetPinFunction(14,DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(15,DeviceFunction.I2C1_CLOCK);
,

在我们的Discord server中回答这个问题。