C# nanoFramework ESP32使用键盘睡眠后无法醒来

C# nanoFramework ESP32使用键盘睡眠后无法醒来,c#,sleep,esp32,keypad,nanoframework,C#,Sleep,Esp32,Keypad,Nanoframework,我正在做一个带有数字键盘的项目,一个在nanoFramework中编程的ESP32(CoreLibrary 1.9.0 p5,ESP32 1.3.2 p9)。 现在我想用一个按键唤醒控制器。 处理矩阵的代码运行良好,按钮响应灵敏且工作正常: var row4 = controller.OpenPin(32); row4.SetDriveMode(GpioPinDriveMode.Output); ... var col3 = controller.OpenPin(12); col3.SetDri

我正在做一个带有数字键盘的项目,一个在nanoFramework中编程的ESP32(CoreLibrary 1.9.0 p5,ESP32 1.3.2 p9)。 现在我想用一个按键唤醒控制器。 处理矩阵的代码运行良好,按钮响应灵敏且工作正常:

var row4 = controller.OpenPin(32);
row4.SetDriveMode(GpioPinDriveMode.Output);
...
var col3 = controller.OpenPin(12);
col3.SetDriveMode(GpioPinDriveMode.InputPullDown);
睡觉前,我重新定义了驱动模式,使其在3.3V电压下有一个引脚:

Sleep.EnableWakeupByPin(Sleep.WakeupGpioPin.Pin32, 1);
col3.SetDriveMode(GpioPinDriveMode.OutputOpenDrainPullUp);
Sleep.StartLightSleep();
因此,ESP32进入睡眠正如预期,但我不能唤醒它与引脚32

我所尝试的:

  • 当涉及到RTC引脚时,引脚编号似乎有点奇怪。Pin32似乎是RTC-Pin9。但是
    WakeupGpioPin
    -enum仅包含正常的GPIO编号
  • 尝试交换两个,Pin12作为WakeupPin,Pin32作为Pullup
  • 从外部将销拉高或拉低-无效果
  • 根据测试结果,EnableWakeupByPin中的“电平”参数似乎是电压电平,1处于高电平。但是,我也尝试了0

引脚编号符合Espressif文档。除非由应用程序使用,否则在调用EnableWakeupByPin之前不需要配置GPIO引脚

我已经对此进行了测试,看起来Sleep.EnableWakeupByPin()不起作用。我们将调查原因并加以解决

尝试使用Sleep.EnableWakeupByMultiPins()。我已经测试过了,这很有效

Sleep.EnableWakeupByMultiPins(Sleep.WakeupGpioPin.Pin32, Sleep.WakeupMode.AnyHigh);

太好了,谢谢你,阿德里安。GitHub上已经有问题了吗?