AXP192

AXP192 是一款高度集成的电源系统管理芯片。

begin()

功能:

初始化 AXP192 芯片

函数原型:

void begin(void)

使用示例:

#include <M5StickC.h>

void setup() {
  M5.begin(); //By default, "M5.begin()" will initialize AXP192 chip
}
void loop() {}

GetWarningLeve()

功能:

获取当前报警等级

函数原型:

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);
}

ScreenBreath()

功能:

改变 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);
}

GetVbatData()

功能:

获取电池电压值

函数原型:

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);
}

LightSleep()

功能:

控制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);
}

DeepSleep()

功能:

控制外设进入休眠模式,到达时间自动唤醒

函数原型:

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));
  }
}

SetSleep()

功能:

控制外设进入休眠模式,按下电源键唤醒

函数原型:

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(); 
  }
}

GetIchargeData()

功能:

获取电池充电电流值

函数原型:

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);
}

GetPowerbatData()

功能:

获取当前电源功率

函数原型:

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);
}

GetVapsData()

功能:

获取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);
}

GetTempData()

功能:

获取芯片温度

函数原型:

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);
}

GetIdischargeData()

功能:

获取放电电流

函数原型:

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);
}

GetIinData()

功能:

获取输入电流

函数原型:

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);
}

GetIusbinData()

功能:

获取当前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);
}
On This Page