自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 问答 (11)
  • 收藏
  • 关注

原创 让 LVGL 界面“说多种语言”——推荐 LVLANG 多语言文本系统

LVLANG是一款专为LVGL设计的轻量级多语言文本系统,支持嵌入式设备和PC模拟器。它通过CSV文件自动生成多语言表,实现动态切换语言而无需重构UI,采用纯C语言实现无外部依赖。使用方法简单:创建标签绑定文本ID,调用函数即可更新所有界面文本。适用于工业设备、消费电子产品等多语言场景,有效解决硬编码文本带来的维护难题。该项目还计划支持JSON/YAML格式,使国际化UI开发更加高效便捷。

2025-11-05 15:32:18 815

原创 LVGL 实战:基于复用机制实现无限滚动列表

/ 复用对象数量(可见区域能显示的最大数量)// 单条数据高度(像素)// 总数据量(实际可通过取模实现无限)// 子对象间距(像素)// 单条数据总占用高度(高度+间距)​// 存储复用的子对象// 模拟30条数据​// 主容器对象是关键计算量,用于确定每条数据的位置间隔数据数组data可替换为实际业务数据(如传感器日志、设备列表等)本文介绍的无限滚动列表通过对象复用机制,在资源受限的嵌入式设备中高效展示大量数据,核心是通过滚动偏移计算实现少量对象的动态更新。

2025-08-21 11:30:47 1416

原创 LVGL 中 lv_obj_is_valid () 函数的那些 “坑”:并非 100% 可靠的对象有效性判断

lv_obj_is_valid () 函数在 LVGL 开发中用于对象有效性判断,但在长时间压力测试下可能因内存地址复用而出现误判。解决该问题的核心在于删除对象后将其指针设为 NULL,无论是手动置空、通过包装函数还是事件回调,都能有效避免误判导致的系统崩溃。需要注意的是,lv_obj_del () 函数本身不会自动将指针设为 NULL,因为其参数为对象指针,无法修改外部指针变量的值。此外,在处理包含子对象的情况时,自动置空方法可能无法完全覆盖子对象指针,需要开发者根据实际情况额外处理。

2025-07-17 09:15:33 1452

原创 Linux文件io

如果文件存在,其内容会被清空(即删除现有内容),即使文件没有被截断,也会变成一个空文件。如果文件存在,不会清空文件内容,而是将文件指针置于文件的末尾,准备在文件的末尾追加数据。如果文件存在,其内容会被清空(即删除现有内容),即使文件没有被截断,也会变成一个空文件。如果文件存在,不会清空文件内容,而是将文件指针置于文件的末尾,准备在文件的末尾追加数据。函数用于打开或创建一个文件,并返回一个文件描述符,它是非负整数,用于后续的文件操作。清空文件内容(或创建新文件),但"w"只允许写入,而"w+"允许读写。

2024-07-22 10:58:04 1400 1

原创 蓝桥杯嵌入式按键单击双击长按

/按键按下标志位//按键状态//长按标志位//双击标志位//判断状态//长按时间//双击时间//按下次数。

2024-04-12 19:36:48 699

LVGL 实战:基于复用机制实现无限滚动列表

LVGL 实战:基于复用机制实现无限滚动列表

2025-08-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除