OpenEdv-开源电子网

 找回密码
 立即注册
查看: 1308|回复: 3

LVGL工程怎么调用非LVGL的功能函数

[复制链接]

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2020-2-4
在线时间
47 小时
发表于 2023-3-23 16:15:43 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 mmmllb 于 2023-3-24 17:37 编辑

1.我现在做的程序功能简化模型如下:
程序的运行条件为:定时器1的溢出时间为1ms,有温度传感器检测外界温度;
程序目标为:
a. 定时器1溢出10000次后结束,每运行100次通过串口打印剩余运行次数,运行中界面显示“运行”,结束后界面显示“结束”;
b. 温度过高时额外增加“温度过高“提示并将定时器溢出时间改为10ms(假定运行过程中必然会发生温度过高);

2. 以裸机程序为例程序的架构如下:LVGL初始化
LVGL界面函数
while(1)
{
LVGL调度器;
延时5ms;

}

3. 概括功能函数有以下三个:

a. 每运行100次串口打印一次;
b. 根据运行结束与否判断输出的提示;
c. 定期检测温度值,温度过高时输出提示,更改定时器1的溢出时间。

4.疑问
怎么调用这三个功能函数,或者这三个功能函数写到什么位置?
我自己测试放在while(1)之前,会先运行三个功能函数,然后运行重复LVGL函数,因为运行到LVGL之后才会运行LVGL函数。然后调度器只会调度LVGL程序,三个功能函数不会在运行;
如果放在while(1)内部,那么LVGL调度器的运行周期会大大增加,感觉也不合理。

补充:
正点原子旧版本的LVGL教程配套代码中貌似LVGL有task系统,最新版本是把task系统删除了吗,还是由新功能替代了?






最佳答案

查看完整内容[请看2#楼]

初步确定,以上需求可以在LVGL的定时器任务中实现,稍后验证下。 定时器和菜单部件个人感觉都比较重要,在LVGL开发指南V1.3文件中有介绍,视频教程中没有。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2020-2-4
在线时间
47 小时
 楼主| 发表于 2023-3-23 16:15:44 | 显示全部楼层
本帖最后由 mmmllb 于 2023-3-25 14:56 编辑

初步确定,以上需求可以在LVGL的定时器任务中实现,稍后验证下。
定时器和菜单部件个人感觉都比较重要,在LVGL开发指南V1.3文件中有介绍,视频教程中没有。

回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2023-1-9
在线时间
5 小时
发表于 2023-4-17 12:04:34 | 显示全部楼层
楼主,我也遇到了这个问题,解析json数据存放在链表,调用lvgl函数进行组件配置后,删除链表,测试放在while(1)之前,会先运行函数,然后运行重复LVGL函数,因为运行到LVGL之后才会运行LVGL函数。然后调度器只会调度LVGL程序,在界面无法显示组件,但是我将屏幕数据放在结构体数组中可以配置成功显示,是我链表删除,到lvgl函数运行数据失效,还是函数调用位置的问题
回复

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2020-2-4
在线时间
47 小时
 楼主| 发表于 2023-4-22 09:25:28 | 显示全部楼层
Emilysum 发表于 2023-4-17 12:04
楼主,我也遇到了这个问题,解析json数据存放在链表,调用lvgl函数进行组件配置后,删除链表,测试放在whil ...

不大清楚你的问题在哪,但是LVGL软件定时器可以解决我遇到的问题,建议你可以试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表