class WakeUp - 唤醒中断
2024-07-08
EC600/EC800E系列的普通GPIO不支持双边沿触发中断,且不支持休眠下中断唤醒。WakeUp则没有上下拉的限制,默认支持双边沿触发中断以及在休眠状态下唤醒模组。使用方法如下:
构造函数
class pm.WakeUp(WakeupID, pull,[edge])
参数说明:
WakeupID
- 需要控制的wakeup号,点此查看:pull
- 上下拉模式,int类型,说明如下:PULL_DISABLE
– 浮空模式0PULL_PU
– 上拉模式1PULL_PD
– 下拉模式2[edge_enable]
- 触发边沿设置, int类型,缺省值为双边沿触发,说明如下:IRQ_RISING
-仅使能上升沿触发IRQ_FALLING
-仅使能下降沿触发IRQ_RISING_FALLING
-使能双边沿触发
[edge_enable]
仅EC800Z支持设置。
初始化示例:
WakeUp(WakeUp.WAKEUP5,WakeUp.PULL_PD,WakeUp.IRQ_RISING)#EC800Z 配置为上升沿触发
WakeUp(WakeUp.WAKEUP5,WakeUp.PULL_PD,WakeUp.IRQ_FALLING)#EC800Z 配置为下降沿触发
示例:
from pm import WakeUp
def fun(level):
print(str(level))
wake=WakeUp(WakeUp.WAKEUP5,WakeUp.PULL_PD)
wake.set_callback(fun)# 设置回调,回调仅返回电平
wake.enable()# 使能中断
wake.read() #读引脚电平
方法
wake.enable
wake.enable()
该方法用于使能唤醒中断,当WakeUp引脚检测到上升沿或者下降沿时,会调用callback执行。
返回值:
成功返回整型值0
,失败返回整型值-1
。
wake.disable
wake.disable()
该方法用于关闭中断,禁用与WakeUp对象关联的中断 。
返回值:
成功返回整型值0
,失败返回整型值-1
。
wake.read
wake.read()
该方法用于读取当前引脚电平。
返回值:
返回引脚电平,0
表示获取到的引脚电平为低,1
表示获取到的引脚电平为高。
wake.deinit
wake.deinit()
关闭WakeUp功能。
返回值:
成功返回整型值0
,失败返回整型值-1
。
wake.set_callback
wake.set_callback(fun)
该方法用于设置回调,触发中断后,会执行该回调,回调返回电平。
参数描述:
fun
- 回调函数,回调函数原型:fun(level)
回调函数参数描述:
- level:
0
:低电平,1
:高电平。
- level:
WakeUp编号与物理引脚的映射关系:
模组 | WakeUp对应引脚说明 |
---|---|
EC800E | WAKEUP2 - 引脚号79WAKEUP3 - 引脚号109(EC800ECN_LE&LQ&LC不可用)WAKEUP4 - 引脚号108(EC800ECN_LE&LQ&LC不可用)WAKEUP5 - 引脚号19 |
EC600E | WAKEUP2 - 引脚号9WAKEUP3 - 引脚号51WAKEUP4 - 引脚号50WAKEUP5 - 引脚号39 |
EC800Z | WAKEUP0 - 引脚号87(低压模组是107脚)WAKEUP2 - 引脚号79WAKEUP3 - 引脚号109WAKEUP4 - 引脚号108WAKEUP5 - 引脚号19 |