8.3 KiB
Power
电源相关的函数可能涉及 IP5306 芯片的寄存器,如果有不明白的地方,可以查看 IP5306 的寄存器手册。
- IP5306芯片不支持与旧M5STACK硬件通信。使用功能时,还要考虑支持失控情况。*
按顺序使用:初始化,通信检查和控制,如以下示例所示。
M5.Power.begin();
if(!M5.Power.canControl()) {
//can't control.
return;
}
M5.Power.lightSleep(SLEEP_SEC(5));
begin()
函数原型:
void begin()
功能:
Performs initialization of Power class.
参数
无。
返回值
无。
setPowerBoostOnOff()
函数原型:
bool setPowerBoostOnOff(bool en)
功能:
更改电源开/关方法。 通过USB连接时,电源不会关闭。
参数
| 値 | 功能 |
|---|---|
| true | 按住可打开/关闭。 |
| false | 两次短按打开/关闭。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setPowerBoostKeepOn()
函数原型:
bool setPowerBoostKeepOn(bool en)
功能:
更改电源开/关方法。 通过USB连接时,电源不会关闭。
参数
| 値 | 功能 |
|---|---|
| true | 短按一下开/关。 |
| false | 遵循setPowerBoostOnOff()方法。 |
返回值
|true| 控制成功 | |false| 控制失败|
setPowerVin()
函数原型:
bool setPowerVin(bool en)
功能:
当USB等电源切断时, 决定是否再次打开电源。
参数
| 値 | 功能 |
|---|---|
| true | 电源将再次打开。 |
| false | 电源不会再次打开。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setPowerWLEDSet()
函数原型:
bool setPowerWLEDSet(bool en)
功能:
设置模式以打开电源LED。 M5GO的IP5306没有接线,无法通过此功能进行控制。
参数
| 値 | 功能 |
|---|---|
| true | 两次短按即可打开LED |
| false | 按住可打开LED |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setPowerBtnEn()
函数原型:
bool setPowerBtnEn(bool en)
功能:
设置是否接受电源按钮。
关于不接受按钮时的行为: 如果电源打开,电源按钮仅接受CPU复位。 如果未提供电源,则无法打开电源。
参数
| 値 | 功能 |
|---|---|
| true | 接受电源操作。 |
| false | 不接受电源控制。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setLowPowerShutdownTime()
函数原型:
bool setLowPowerShutdownTime(ShutdownTime time)
功能:
设置等待时间,直到IP5306进行节能判断并关闭电源。
参数
| 値 | 功能 |
|---|---|
| ShutdownTime::SHUTDOWN_8S | 等待8秒。 |
| ShutdownTime::SHUTDOWN_16S | 等待16秒。 |
| ShutdownTime::SHUTDOWN_32S | 等待32秒。 |
| ShutdownTime::SHUTDOWN_64S | 等待64秒。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setPowerBoostKeepOn()
函数原型:
bool setPowerBoostKeepOn(bool en)
功能:
此功能设置/取消设置始终提升输出模式。
参数
| 値 | 功能 |
|---|---|
| true | 总是输出功率。 |
| false | 不总是输出功率。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setKeepLightLoad()
函数原型:
bool setKeepLightLoad(bool en)
功能:
此功能设置/取消设置以禁用自动关闭。 (已弃用:此功能将被禁用,并将在不久的将来删除)
参数
| 値 | 功能 |
|---|---|
| true | 当电流消耗低时,不会发生自动关闭 |
| false | 电流消耗低时自动关闭 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setLowPowerShutdown()
函数原型:
bool setLowPowerShutdown(bool en)
功能:
此功能设置/取消设置以禁用自动关闭。 (已弃用:此功能将被禁用,并将在不久的将来删除)
参数
| 値 | 功能 |
|---|---|
| true | 启用节能关机功能。 |
| false | 禁用节能关机功能。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setAutoBootOnLoad()
函数原型:
bool setAutoBootOnLoad(bool en)
功能:
设置是否在IP5306的次级侧发生功耗时自动启动.
参数
| 値 | 功能 |
|---|---|
| true | 启用自动启动功能。 |
| false | 禁用自动启动功能。 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
setCharge()
函数原型:
bool setCharge(bool en)
功能:
此功能设置/取消设置充电模式。电池充满电后, 尝试设置充电启用 - >禁用 - >启用,它可以充电。
参数
| 値 | 功能 |
|---|---|
| true | 充电开始指令 |
| false | 充电停止指令 |
返回值
| 値 | 功能 |
|---|---|
| true | 控制成功 |
| false | 控制失败 |
isChargeFull()
函数原型:
bool isChargeFull()
说明:
确认完全充电.
参数
无。
返回值
| 値 | 功能 |
|---|---|
| true | 完全充电 |
| false | 没有完全充电 |
canControl()
函数原型:
bool canControl()
功能:
此功能通过I2C通信检查电池控制器是否存在。
参数
无。
返回值
| 値 | 功能 |
|---|---|
| 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()
函数原型:
void reset()
功能:执行CPU重置
参数
无。
返回值
无。
isResetbySoftware()
函数原型:
bool isResetbySoftware()
功能:
判断当前激活状态是否在CPU复位后。 (如果执行reset()或RTOS等的等效处理,则会成立)
参数
无。
返回值
| 値 | 功能 |
|---|---|
| true | 通过软件重置 |
| false | 出于其他原因 |
isResetbyWatchdog()
函数原型:
bool isResetbyWatchdog()
功能:
确定当前激活状态是否在看门狗之后。
参数
无。
返回值
| 値 | 功能 |
|---|---|
| true | 通过看门狗 |
| false | 出于其他原因 |
isResetbyDeepsleep()
函数原型:
bool isResetbyDeepsleep()
功能:
确定当前唤醒状态是否在deepSleep()之后。
参数
无。
返回值
| 値 | 功能 |
|---|---|
| true | 在deepSleep()之后 |
| false | 出于其他原因 |
isResetbyPowerSW()
函数原型:
bool isResetbyPowerSW()
功能:
确定当前启动状态是否在电源开关接通电源后。
参数
无。
返回值
| 値 | 功能 |
|---|---|
| true | 通过电源开关 |
| false | 出于其他原因 |
deepSleep()
函数原型:
void deepSleep()
功能: 此功能转换为深度睡眠模式。 它在指定的时间或端口状态更改时启动。 唤醒后,CPU将重新启动,而不是从下一行运行。
使用示例 节能5秒钟然后重新启动。
deepSleep(SLEEP_SEC(5));
lightSleep()
函数原型:
void lightSleep(uint64_t time_in_us)
功能: 此功能转换为深度睡眠模式。 它在指定的时间或端口更改时启动。 返回后,它将从下一行执行。 与deepSleep()相比,缺少省电功能。
使用示例 节能5秒钟然后重新启动。
lightSleep(SLEEP_SEC(5));
powerOFF()
函数原型:
void powerOFF()
功能: 关掉电源。 使用省电功能在8秒后关闭IP5306 关闭提供给电路侧的电源。
使用注意事项 M5Stack无法强行关闭电源。 因此,该功能通过使用IP5306的省电功能实现。 如果用户在电路中消耗电流,IP5306无法确定电源关闭。