Try the code below.
//----------------------------------------------------------------------------------------------
//Board Library : Seeed nRF52 Borads 1.1.1
//Board Select : Seeed nRF52 Borads / Seeed XIAO nRF52840 Sense
//----------------------------------------------------------------------------------------------
#include <Arduino.h>
#include <Adafruit_TinyUSB.h> // for Serial.print()
//Arduino15\packages\Seeeduino\hardware\nrf52\1.1.4\variants\Seeed_XIAO_nRF52840_Sense\variant.cpp
#define PIN_VBAT (32) // D32 battery voltage
#define PIN_VBAT_ENABLE (14) // D14 LOW:read anable
#define PIN_HICHG (22) // D22 charge current setting LOW:100mA HIGH:50mA
#define PIN_CHG (23) // D23 charge indicatore LOW:charge HIGH:no charge
void setup()
{
Serial.begin(115200);
while(!Serial);
pinMode(PIN_VBAT, INPUT);
pinMode(PIN_VBAT_ENABLE, OUTPUT);
pinMode(PIN_HICHG, OUTPUT);
pinMode(PIN_CHG, INPUT);
digitalWrite(PIN_VBAT_ENABLE, LOW); // VBAT read enable
digitalWrite(PIN_HICHG, LOW); // charge current 100mA
// initialise ADC wireing_analog_nRF52.c:73
analogReference(AR_DEFAULT); // default 0.6V*6=3.6V wireing_analog_nRF52.c:73
analogReadResolution(12); // wireing_analog_nRF52.c:39
}
void loop()
{
int vbatt = analogRead(PIN_VBAT);
Serial.print(vbatt, HEX);
Serial.print(" ");
Serial.print(2.961 * 3.6 * vbatt / 4096); // Resistance ratio 2.961, Vref = 3.6V
Serial.print(" ");
Serial.println(digitalRead(PIN_CHG)); // 0:charge, 1:discharge
delay(1000);
}