AXP192 是一款高度集成的电源系统管理芯片。
功能:
初始化 AXP192 芯片
函数原型:
void begin(void)
使用示例:
#include <M5StickC.h>
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip
}
void loop() {}
功能:
获取当前报警等级
函数原型:
uint8_t GetWarningLeve(void)
使用示例:
#include <M5StickC.h>
int level;
void setup() {
M5.begin();
}
void loop() {
level = M5.Axp.GetWarningLeve();
M5.Lcd.setCursor(0, 0);
M5.Lcd.print(level);
}
功能:
改变 AXP192 芯片的LDO3输出电压。
函数原型:
void ScreenBreath(uint8_t brightness)
参数 | 描述 |
---|---|
brightness | TFT 的背光 ( 数值范围:7-12 ) |
使用示例:
#include <M5StickC.h>
uint8_t i = 7;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip
M5.Lcd.printf("Hello, M5Stack!!");
}
void loop() {
M5.Axp.ScreenBreath(i++);
if (i > 15) i = 7;
delay(1000);
}
功能:
获取电池电压值
函数原型:
uint16_t GetVbatData(void)
使用示例:
#include <M5StickC.h>
double vbat = 0.0;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip
M5.Lcd.fillScreen(BLACK);
}
void loop() {
vbat = M5.Axp.GetVbatData() * 1.1 / 1000;
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("vbat:%.3fV\r\n", vbat);
delay(500);
}
功能:
控制ESP32进入轻度睡眠模式,开机键唤醒.
函数原型:
void LightSleep(uint64_t time_in_us = 0)
参数 | 描述 |
---|---|
time_in_us | 休眠时间 |
使用示例:
#include <M5StickC.h>
int count = 0;
void setup() {
M5.begin();
M5.Lcd.fillScreen(WHITE);
pinMode(M5_BUTTON_HOME,INPUT_PULLUP);
}
void loop() {
if(digitalRead(M5_BUTTON_HOME) == LOW){
while(digitalRead(M5_BUTTON_HOME) == LOW);
M5.Axp.LightSleep(SLEEP_SEC(5)); //SLEEP_SEC(us) (((uint64_t)us) * 1000000L)
}
count++;
M5.Lcd.setCursor(60, 30);
M5.Lcd.setTextColor(BLACK, WHITE);
M5.Lcd.print(count);
}
功能:
控制外设进入休眠模式,到达时间自动唤醒
函数原型:
void DeepSleep(uint64_t time_in_us = 0)
使用示例:
#include <M5StickC.h>
void setup() {
M5.begin();
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(WHITE);
M5.Lcd.setTextColor(BLACK, WHITE);
pinMode(M5_BUTTON_HOME,INPUT_PULLUP);
M5.Lcd.setCursor(60, 30);
M5.Lcd.print("SLEEP");
}
void loop() {
if(digitalRead(M5_BUTTON_HOME) == LOW){
while(digitalRead(M5_BUTTON_HOME) == LOW);
M5.Axp.DeepSleep(SLEEP_SEC(5));
}
}
功能:
控制外设进入休眠模式,按下电源键唤醒
函数原型:
void SetSleep(void)
使用示例:
#include <M5StickC.h>
void setup() {
M5.begin();
M5.Lcd.fillScreen(WHITE);
pinMode(M5_BUTTON_HOME,INPUT_PULLUP);
M5.Lcd.setCursor(60, 30);
M5.Lcd.print("SLEEP");
}
void loop() {
if(digitalRead(M5_BUTTON_HOME) == LOW){
while(digitalRead(M5_BUTTON_HOME) == LOW);
M5.Axp.SetSleep();
}
}
功能:
获取电池充电电流值
函数原型:
uint16_t GetIchargeData(void)
使用示例:
#include <M5StickC.h>
int charge;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
}
void loop() {
charge = M5.Axp.GetIchargeData() / 2;
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("icharge:%dmA\r\n", charge);
delay(500);
}
功能:
获取当前电源功率
函数原型:
uint32_t GetPowerbatData(void)
使用示例:
#include <M5StickC.h>
int bat;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
M5.Axp.ScreenBreath(7);
}
void loop() {
bat = M5.Axp.GetPowerbatData()*1.1*0.5/1000;
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("battery power:%dmW\r\n", bat);
delay(500);
}
功能:
获取APS电压
函数原型:
uint16_t GetVapsData(void)
使用示例:
#include <M5StickC.h>
int Vaps;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
}
void loop() {
Vaps = M5.Axp.GetVapsData();
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("The APS Voltage is :%dmW\r\n", Vaps);
delay(500);
}
功能:
获取芯片温度
函数原型:
uint16_t GetTempData(void)
使用示例:
#include <M5StickC.h>
int temp;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
}
void loop() {
temp = M5.Axp.GetTempData()*0.1-144.7;
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("tempurature:%d\r\n", temp);
delay(500);
}
功能:
获取放电电流
函数原型:
uint16_t GetIdischargeData(void)
使用示例:
#include <M5StickC.h>
int disCharge;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
}
void loop() {
disCharge = M5.Axp.GetIdischargeData() / 2;
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("disCharge:%dma\r\n", disCharge);
delay(500);
}
功能:
获取输入电流
函数原型:
uint16_t GetIinData(void)
使用示例:
#include <M5StickC.h>
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
}
void loop() {
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("Iin:%.3fmA\r\n",M5.Axp.GetIinData() * 0.625);
}
功能:
获取当前USB电流
函数原型:
uint16_t GetIusbinData(void)
使用示例:
#include <M5StickC.h>
int Iusb;
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip. 默认情况下,“M5.begin()”会初始化AXP192芯片
M5.Lcd.fillScreen(BLACK);
}
void loop() {
Iusb = M5.Axp.GetIdischargeData() * 0.375;
M5.Lcd.setCursor(0, 0, 1);
M5.Lcd.printf("Iusbin:%da\r\n", Iusb);
delay(500);
}