从入门到精通:exchg充电库助新手攻克续航与管理双痛点

电子说

1.4w人已加入

描述

刚入门充电管理的新手也能变高手!exchg扩展库内置智能充电逻辑,自动适配设备需求,从充电顺序到能耗优化全程托管,续航更持久,管理更省心,快速掌握核心技巧!

本文主要分享exchg扩展库的相关函数说明及代码示例,实际开发中可结合LuatOS生态灵活运用。
 

注意:开启充电exchg.start()和关闭充电exchg.stop()默认自动执行,可以不用操作;当碰到某些需要手动关闭或开启充电功能的场景时,大家可以自行控制,当前仅为预留。

扩展库最新资料详见:

https://docs.openluat.com/osapi/ext/exchg/

一、exchg.start()

1.1 函数功能

用于开启充电;

必须在task中运行,最大阻塞时间大概为700ms,阻塞主要由sys.waitUntil("YHM27XX_REG", 500)和sys.wait(200)产生。

1.2 参数说明

参数:无;

返回值:boolean:true=成功,false=失败。

1.3 代码示例

嵌入式

二、exchg.stop()

2.1 函数功能

用于关闭充电;

必须在task中运行,最大阻塞时间大概为700ms,阻塞主要由sys.waitUntil("YHM27XX_REG", 500)和sys.wait(200)产生。

2.2 参数说明

参数:无;

返回值:boolean:true=成功,false=失败。

2.3 代码示例

嵌入式

三、exchg.setup(v_battery, cap_battery, i_charge)

3.1 函数功能

用于设置电池的充电截止电压/电池容量/充电电流;

必须在task中运行,最大阻塞时间大概为700ms,阻塞主要由sys.waitUntil("YHM27XX_REG", 500)和sys.wait(200)产生。

3.2 参数说明

v_battery:number,电池充电截止电压(单位:mV);取值范围:4200或4350可选, 必须传入。

cap_battery:number,电池容量(单位:mAh);取值范围:>= 100,必须传入。

i_charge:string,充电电流;

取值范围:exchg.CCMIN(最小电流)exchg.CCDEFAULT(默认电流) exchg.CCMAX(最大电流)三个可选参数,不传入时默认值为exchg.CCDEFAULT。

返回值:boolean:true=成功,false=失败。

3.3 代码示例

嵌入式

四、exchg.status()

4.1 函数功能

获取充电系统状态信息,必须在task中运行,最大阻塞时间(包括超时重试时间)大概为20s。

该函数用于获取当前充电系统的完整状态,包括电池电压、充电阶段、充电状态、电池在位状态、充电器在位状态以及IC过热状态等信息。

其中充电器是否在位,中断触发,触发回调事件为:

CHARGER_STATE_EVENT,附带的参数true表示充电器在位,false表示充电器不在位。

4.2 参数说明

参数:无;

返回值:table,状态信息表。

4.3 状态信息表

嵌入式

五、exchg.on(func)

5.1 函数功能

该函数用于注册exchg事件回调。

5.2 参数说明

参数:function,回调方法;

回调时传入参数有:exchg.OVERHEATexchg.CHARGER_INexchg.CHARGER_OUT

返回值:nil,无返回值。

5.3 代码示例

嵌入式嵌入式

今天的内容就分享到这里了~

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分