电源

类名: Power

电源相关的函数可能涉及 IP5306 芯片的寄存器,如果有不明白的地方,可以查看 IP5306 的寄存器手册

IP5306芯片不支持与旧M5STACK硬件通信使用功能时,还要考虑支持失控情况

按顺序使用:初始化,通信检查和控制,如以下示例所示

  M5.Power.begin();
  if(!M5.Power.canControl()) {
    //can't control.
    return;
  }
  M5.Power.lightSleep(SLEEP_SEC(5));

begin()

功能:

执行Power类的初始化

函数原型:

void begin()

使用示例:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
}

void loop() {}

setPowerBoostOnOff()

功能:

更改电源键 开/关 主机的方式

注意:
通过USB连接时,电源不会关闭

函数原型:

bool setPowerBoostOnOff(bool en)

en 功能
true 长按电源键 打开/关闭 主机
false 两次短按电源键 打开/关闭 主机

返回值:

功能
true 控制成功
false 控制失败

使用示例:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
    if (M5.Power.setPowerBoostOnOff(false)) {
        M5.Lcd.println("Changed power on/off method");
    } else {
        M5.Lcd.println("Failed to change power on/off method");
    }
}

void loop() {}

setPowerBoostKeepOn()

功能:

更改电源开/关方法 通过USB连接时,电源不会关闭

函数原型:

bool setPowerBoostKeepOn(bool en)

en 功能
true 短按一下开/关
false 遵循setPowerBoostOnOff()方法

返回值:

功能
true 控制成功
false 控制失败

setPowerVin()

功能:

当USB等电源切断时, 决定是否再次打开电源

函数原型:

bool setPowerVin(bool en)

功能
true 电源将再次打开
false 电源不会再次打开

返回值:

功能
true 控制成功
false 控制失败

setPowerWLEDSet()

功能:

设置模式以打开电源LED M5GO的IP5306没有接线,无法通过此功能进行控制

函数原型:

bool setPowerWLEDSet(bool en)

功能
true 两次短按即可打开LED
false 按住可打开LED

返回值:

功能
true 控制成功
false 控制失败

setPowerBtnEn()

功能:

设置是否接受电源按钮

关于不接受按钮时的行为: 如果电源打开,电源按钮仅接受CPU复位 如果未提供电源,则无法打开电源

函数原型:

bool setPowerBtnEn(bool en)

功能
true 接受电源操作
false 不接受电源控制

返回值:

功能
true 控制成功
false 控制失败

setLowPowerShutdownTime()

功能:

设置等待时间,直到IP5306进行节能判断并关闭电源

函数原型:

bool setLowPowerShutdownTime(ShutdownTime time)

功能
SHUTDOWN_8S 等待8秒
SHUTDOWN_16S 等待16秒
SHUTDOWN_32S 等待32秒
SHUTDOWN_64S 等待64秒

返回值:

功能
true 控制成功
false 控制失败

setPowerBoostKeepOn()

功能:

此功能设置/取消设置始终提升输出模式

函数原型:

bool setPowerBoostKeepOn(bool en)

功能
true 总是输出功率
false 不总是输出功率

返回值:

功能
true 控制成功
false 控制失败

setAutoBootOnLoad()

功能:

设置是否在IP5306的次级侧发生功耗时自动启动.

函数原型:

bool setAutoBootOnLoad(bool en)

功能
true 启用自动启动功能
false 禁用自动启动功能

返回值:

功能
true 控制成功
false 控制失败

setCharge()

功能:

此功能设置/取消设置充电模式电池充满电后, 尝试设置充电启用 - >禁用 - >启用,它可以充电

函数原型:

bool setCharge(bool en)

功能
true 充电开始指令
false 充电停止指令

返回值:

功能
true 控制成功
false 控制失败

isChargeFull()

功能:

检测电池是否充满电.

函数原型:

bool isChargeFull()

返回值:

功能
true 充满电
false 未充满电

canControl()

功能:

此功能通过I2C通信检查电池控制器是否存在

函数原型:

bool canControl()

返回值:

功能
true 电源控制器发现
false 找不到电源控制器

isCharging()

功能:

确认是否正在充电

函数原型:

bool isCharging()

返回值:

功能
true 在充电过程中
false 不充电

getBatteryLevel()

功能:

返回电池电量

函数原型:

int8_t getBatteryLevel()

返回值:

返回0/25/50/75/100的电池电量. 如果无法检查剩余电量,则返回-1

setWakeupButton()

功能:

设置睡眠返回端口

函数原型:

void setWakeupButton(uint8_t button)

功能
button 端口号

使用示例:

setWakeupButton(BUTTON_A_PIN);

reset()

功能:

执行CPU重置

函数原型:

void reset()

isResetbySoftware()

功能:

判断当前激活状态是否在CPU复位后 (如果执行reset()或RTOS等的等效处理,则会成立)

函数原型:

bool isResetbySoftware()

返回值:

功能
true 通过软件重置
false 出于其他原因

isResetbyWatchdog()

功能:

确定当前激活状态是否在看门狗之后

函数原型:

bool isResetbyWatchdog()

返回值:

功能
true 通过看门狗
false 出于其他原因

isResetbyDeepsleep()

功能:

确定当前唤醒状态是否在deepSleep()之后

函数原型:

bool isResetbyDeepsleep()

返回值:

功能
true 在deepSleep()之后
false 出于其他原因

isResetbyPowerSW()

功能:

确定当前启动状态是否在电源开关接通电源后

函数原型:

bool isResetbyPowerSW()

返回值:

功能
true 通过电源开关
false 出于其他原因

deepSleep()

功能:

此功能转换为深度睡眠模式 它在指定的时间或端口状态更改时启动 唤醒后,CPU将重新启动,而不是从下一行运行

函数原型:

void deepSleep()

使用示例:

节能5秒钟然后重新启动

deepSleep(SLEEP_SEC(5));

lightSleep()

功能:

此功能转换为深度睡眠模式 它在指定的时间或端口更改时启动 返回后,它将从下一行执行 与deepSleep()相比,缺少省电功能

函数原型:

void lightSleep(uint64_t time_in_us)

使用示例:

节能5秒钟然后重新启动

lightSleep(SLEEP_SEC(5));

powerOFF()

功能:

关闭电源 使用省电功能在8秒后关闭IP5306 关闭提供给电路侧的电源

函数原型:

void powerOFF()

注意:
M5Stack无法强行关闭电.因此,该功能通过使用IP5306的省电功能实现,如果用户在电路中消耗电流,IP5306无法确定电源关闭

On This Page