#include "Arduino.h"
#include "em_button.h"
Button_t Button1;
Button_t Button2;
Button_t Button3;
Button_t Button4;
bool printer_test = false;
void Btn_Dowm_CallBack(void *btn)
{
Serial.print("Button 单击!");
printer_test = true;
// read_all_hal();
}
void Btn_Double_CallBack(void *btn)
{
Serial.print("Button 双击!");
}
void Btn_Long_CallBack(void *btn)
{
Serial.print("Button 长按!");
}
void Btn_Logn_Free_CallBack(void *btn)
{
Serial.print("长按松开\n");
}
uint8_t Read_Button1_Level(void)
{
return digitalRead(KEY1);
}
uint8_t Read_Button2_Level(void)
{
return digitalRead(KEY2);
}
uint8_t Read_Button3_Level(void)
{
return digitalRead(KEY3);
}
uint8_t Read_Button4_Level(void)
{
return digitalRead(KEY4);
}
void init_key1()
{
Button_Create("Button1", // 按键名字
&Button1, // 按键句柄
Read_Button1_Level, // 按键电平检测函数接口
LOW); // 触发电平
Button_Attach(&Button1, BUTTON_DOWM, Btn_Dowm_CallBack); // 按键单击
Button_Attach(&Button1, BUTTON_DOUBLE, Btn_Double_CallBack); // 双击
Button_Attach(&Button1, BUTTON_LONG, Btn_Long_CallBack); // 长按
Button_Attach(&Button1, BUTTON_LONG_FREE, Btn_Logn_Free_CallBack); // 长按释放
}
void init_key2()
{
Button_Create("Button2", // 按键名字
&Button2, // 按键句柄
Read_Button2_Level, // 按键电平检测函数接口
LOW); // 触发电平
Button_Attach(&Button2, BUTTON_DOWM, Btn_Dowm_CallBack); // 按键单击
Button_Attach(&Button2, BUTTON_DOUBLE, Btn_Double_CallBack); // 双击
Button_Attach(&Button2, BUTTON_LONG, Btn_Long_CallBack); // 长按
Button_Attach(&Button2, BUTTON_LONG_FREE, Btn_Logn_Free_CallBack); // 长按释放
}
void init_key3()
{
Button_Create("Button3", // 按键名字
&Button3, // 按键句柄
Read_Button3_Level, // 按键电平检测函数接口
LOW); // 触发电平
Button_Attach(&Button3, BUTTON_DOWM, Btn_Dowm_CallBack); // 按键单击
Button_Attach(&Button3, BUTTON_DOUBLE, Btn_Double_CallBack); // 双击
Button_Attach(&Button3, BUTTON_LONG, Btn_Long_CallBack); // 长按
Button_Attach(&Button3, BUTTON_LONG_FREE, Btn_Logn_Free_CallBack); // 长按释放
}
void init_key4()
{
Button_Create("Button4", // 按键名字
&Button4, // 按键句柄
Read_Button4_Level, // 按键电平检测函数接口
LOW); // 触发电平
Button_Attach(&Button4, BUTTON_DOWM, Btn_Dowm_CallBack); // 按键单击
Button_Attach(&Button4, BUTTON_DOUBLE, Btn_Double_CallBack); // 双击
Button_Attach(&Button4, BUTTON_LONG, Btn_Long_CallBack); // 长按
Button_Attach(&Button4, BUTTON_LONG_FREE, Btn_Logn_Free_CallBack); // 长按释放
}
/**
Set up the Arduino board and initialize Serial communication
*/
void setup() {
Serial.begin(9600);
init_key1();
init_key2();
init_key3();
init_key4();
Search_Button();
Button_Delete(&Button2);
Search_Button();
}
void loop() {
while (1)
{
Button_Process();
delay(50);
}
}
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1