【发布时间】:2021-01-20 10:41:24
【问题描述】:
我正在做一个带有数字键盘的项目,这是一个在 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按预期进入睡眠状态,但我无法用pin 32唤醒它。
我尝试过的:
- 当涉及到 RTC 引脚时,引脚编号似乎有点奇怪。 Pin32 似乎是 RTC-Pin9。但是
WakeupGpioPin-enum 只包含普通的 GPIO 编号。 - 尝试交换两者,Pin12 为 WakeupPin,Pin32 为 Pullup。
- 从外部将引脚拉高或拉低 - 无效
- 根据espressif Docs,
EnableWakeupByPin中的“电平”参数似乎是电压电平和 1 蜂鸣音高。不过,我也试过 0。
【问题讨论】:
标签: c# sleep esp32 keypad nanoframework