首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nanoFramework ESP32和Keypad睡后不醒

nanoFramework ESP32和Keypad睡后不醒
EN

Stack Overflow用户
提问于 2020-10-05 14:35:19
回答 1查看 176关注 0票数 1

我正在用数字键盘做一个项目,这是一个用ESP32编程的nanoFramework (CoreLibrary 1.9.0 p5,Esp32 1.3.2 p9)。现在我想用一个按键唤醒控制器。处理矩阵的代码工作得很好,按钮可以响应并工作:

代码语言:javascript
复制
var row4 = controller.OpenPin(32);
row4.SetDriveMode(GpioPinDriveMode.Output);
...
var col3 = controller.OpenPin(12);
col3.SetDriveMode(GpioPinDriveMode.InputPullDown);

在睡觉之前,我重新定义了驱动模式,在3.3V时有一个引脚:

代码语言:javascript
复制
Sleep.EnableWakeupByPin(Sleep.WakeupGpioPin.Pin32, 1);
col3.SetDriveMode(GpioPinDriveMode.OutputOpenDrainPullUp);
Sleep.StartLightSleep();

所以ESP32会像预期的那样进入睡眠状态,但我不能用32针唤醒它。

我试过的是:

  • 当涉及到RTC-引脚时,引脚编号似乎有点奇怪。Pin32似乎是RTC-品9。但是WakeupGpioPin-enum只包含普通的GPIO号。
  • 试着把这两个人交换,Pin12是WakeupPin,Pin32是Pullup。
  • 外拉销高或低-没有影响。
  • EnableWakeupByPin中的“电平”参数似乎是电压级和1级高,根据espressif文档。然而,我也尝试了0。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 19:53:29

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

我对此进行了测试,看起来Sleep.EnableWakeupByPin()不起作用。我们会调查原因,把它修好。

尝试使用Sleep.EnableWakeupByMultiPins()。我已经测试过了,这是可行的。

代码语言:javascript
复制
Sleep.EnableWakeupByMultiPins(Sleep.WakeupGpioPin.Pin32, Sleep.WakeupMode.AnyHigh);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64210760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档