- 博客(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
关于freertos和stm32
2024-03-12
keil编写c语言运行出错
2022-02-06
如何用c语言实现这个问题
2021-11-22
字符串压缩,但最后一个字母后多了一个1
2021-11-21
输入 10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
2021-11-20
给成绩排序 排序处函数错误
2021-11-16
c语言刚刚入门,请问这个问题怎么解决
2021-11-12
c语言选择排序,结果出问题了
2021-10-06
c语言调用函数,求解答
2021-10-19
改bug 实现数组元素反转
2021-09-30
c语言程序设计 最后答案是01010011吗
2021-10-02
不知道计算流程是怎么计算的
2021-09-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅