当前位置: 首页 > backend >正文

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());
http://www.xdnf.cn/news/15111.html

相关文章:

  • 2025.07.09华为机考真题解析-第三题300分
  • 开源!RAG竞技场(3):语义分割的RAG(Semantic Chunking RAG)
  • 解释sync.WaitGroup的用途和工作原理。在什么情况下应该使用它?
  • XSS(ctfshow)
  • Camera2API笔记
  • 创建本地软件仓库(rhel7与rhel9)
  • [C#] 使用TextBox换行失败的原因与解决方案:换用RichTextBox的实战经验
  • JavaScript 树形菜单总结
  • Datawhale AI 夏令营:基于带货视频评论的用户洞察挑战赛 Notebook(下篇)
  • git中的fork指令解释
  • 第1讲:C语言常见概念
  • 【NVIDIA-H100-UFM故障分析实战】GPU 节点反复 “掉线又上线“?300 条日志揪出 InfiniBand 链路抖动真凶
  • SYM32第二十天 ESP8266-01S和电脑实现串口通信(3)
  • 深入理解Java虚拟机:Java内存区域与内存溢出异常
  • RMSNorm/LayerNorm原理/图解及相关变体详解
  • 2025企业私有化知识库工具选型指南——标普智元深度解读
  • 谷粒商城高级篇
  • FPGA设计思想与验证方法系列学习笔记001
  • 数组的应用示例
  • 【前端】jQuery数组合并去重方法总结
  • [论文阅读]Text Compression for Efficient Language Generation
  • 无缝矩阵与普通矩阵的对比分析
  • 「按键精灵安卓/ios辅助工具」动态验证码该怎么得到完整的图片
  • 电脑被突然重启后,再每次打开excel文件,都会记录之前的位置窗口大小,第一次无法全屏显示。
  • Prompt提示词的主要类型和核心原则
  • QTextCodec的功能及其在Qt5及Qt6中的演变
  • OKHttp 核心知识点详解
  • [Xmos] Xmos架构
  • Docker-构建镜像并实现LNMP架构
  • 【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题