ボタンの操作
M5Stack Core2 は物理的なボタンではなくタッチスクリーン上のボタンになっています。
使っているうちにボタンが見えにくくなってしまいました。M5Stack Core2は外部に出ている信号は I2Cしかないので何かテストをするときはこのボタンを使うことになります。普通の組み込みでは、 チャタリングの除去など自分でやりますが、M5Stackでは面倒な処理は組み込まれていて簡単に 使えます。ソースを見れば簡単さが実感できると思います。
/*
*******************************************************************************
* M5Stack prototype
* date:2022/7/23
* Author Sadajejeje
*******************************************************************************
*/
#include <M5Core2.h>

int g_cnt = 0;
void setup(){
    M5.begin();  //Init M5Core2
    M5.Lcd.setTextSize(2);
}

void loop(){
    M5.update();
    if (M5.BtnA.wasPressed()) {
        //ボタンAが押された
        M5.Lcd.print('A');
    }
    else if(M5.BtnA.pressedFor(5000, 2000)){
        ////ボタンAが押されたまま5000ms経過したら2000ms毎に処理をする
        M5.Lcd.print('a');
    }
    else if (M5.BtnB.wasReleased()) {
        //ボタンBが離れた
        M5.Lcd.print('b');
    } 
    else if (M5.BtnC.wasReleasefor(700)) {
        //ボタンCが押されて700ms後に離れた
        M5.Lcd.print('C');
    } 
    
}