class WakeUp - 唤醒中断

EC600/EC800E系列的普通GPIO不支持双边沿触发中断,且不支持休眠下中断唤醒。WakeUp则没有上下拉的限制,默认支持双边沿触发中断以及在休眠状态下唤醒模组。使用方法如下:

构造函数

class pm.WakeUp(WakeupID, pull,[edge])

参数说明:

  • WakeupID - 需要控制的wakeup号,点此查看

  • pull - 上下拉模式,int类型,说明如下:
    PULL_DISABLE– 浮空模式0
    PULL_PU – 上拉模式1
    PULL_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:高电平。

WakeUp编号与物理引脚的映射关系:

模组 WakeUp对应引脚说明
EC800E WAKEUP2 - 引脚号79
WAKEUP3 - 引脚号109(EC800ECN_LE&LQ&LC不可用)
WAKEUP4 - 引脚号108(EC800ECN_LE&LQ&LC不可用)
WAKEUP5 - 引脚号19
EC600E WAKEUP2 - 引脚号9
WAKEUP3 - 引脚号51
WAKEUP4 - 引脚号50
WAKEUP5 - 引脚号39
EC800Z WAKEUP0 - 引脚号87(低压模组是107脚)
WAKEUP2 - 引脚号79
WAKEUP3 - 引脚号109
WAKEUP4 - 引脚号108
WAKEUP5 - 引脚号19