我正在用数字键盘做一个项目,这是一个用ESP32编程的nanoFramework (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针唤醒它。
我试过的是:
WakeupGpioPin-enum只包含普通的GPIO号。EnableWakeupByPin中的“电平”参数似乎是电压级和1级高,根据espressif文档。然而,我也尝试了0。发布于 2020-10-19 19:53:29
引脚编号是根据Espressif文档。除非应用程序使用,否则不需要在调用EnableWakeupByPin之前配置GPIO引脚。
我对此进行了测试,看起来Sleep.EnableWakeupByPin()不起作用。我们会调查原因,把它修好。
尝试使用Sleep.EnableWakeupByMultiPins()。我已经测试过了,这是可行的。
Sleep.EnableWakeupByMultiPins(Sleep.WakeupGpioPin.Pin32, Sleep.WakeupMode.AnyHigh);https://stackoverflow.com/questions/64210760
复制相似问题