ESP32- 项目应用1 智能手表 #1
1 界面绘制
1.1 模拟界面绘制
这里用meter 来设计模拟手机界面。
1.1.1 meter 组件介绍
lv_meter 是 LVGL v8 引入的一种图形控件,用于创建仪表盘样式的用户界面元素,它可以模拟像速度表、电压表、温度表这类模拟表盘。它通过可视化刻度、指针、颜色弧线等来展示数值信息,是一种非常直观的数据展示控件。
这里有全部介绍-LVGL -meter的应用
1.1.2 具体代码应用
static lv_obj_t *meter;
static lv_meter_indicator_t *indic_hour;
static lv_meter_indicator_t *indic_min;
static lv_meter_indicator_t *indic_sec;#define METER_SIZE 220
#define CENTER_X (LV_HOR_RES / 2)
#define CENTER_Y (LV_VER_RES / 2)
#define DEG_TO_RAD(x) ((x) * 3.14159265f / 180.0f)static void update_clock_cb(lv_timer_t *timer)
{time_t now = time(NULL);struct tm *t = localtime(&now);int hour = t->tm_hour % 12;int minute = t->tm_min;int second = t->tm_sec;// 秒针 0~60 -> 0~360°lv_meter_set_indicator_value(meter, indic_sec, second);// 分针 0~60 -> 0~360°lv_meter_set_indicator_value(meter, indic_min, minute);// 时针 0~12 -> 0~360°,但我们加上分钟偏移lv_meter_set_indicator_value(meter, indic_hour, hour);
}
void create_analog_clock(void)
{// 创建表盘meter = lv_meter_create(lv_scr_act());