使用GUI Guider工具开发嵌入式GUI应用(5)-使用timer对象显示动画

本文介绍了如何利用LVGL库中的timer对象在嵌入式GUI应用中实现动画效果,通过周期性地修改GUI组件属性并触发刷新,展示了如何在GUIGuider中创建一个动态转动的仪表指针示例。

使用GUI Guider工具开发嵌入式GUI应用(5)-使用timer对象显示动画

引言

设计GUI的显示元素动起来,实际上是多张图按照一定的节奏和变化依次刷屏实现的。LVGL在内核设计了timer对象,用于实现周期回调的功能,开发者可以在周期调用的回调函数中,修改GUI显示内容的属性,触发LVGL显示内容的刷新,然后由LVGL的例行执行程序重新刷屏,从而实现动画效果。

LVGL中的timer对象

LVGL的后台是通过时间片轮询对LVGL的交互任务进行调度的。

在具体的MCU平台上适配LVGL时,通常会使用SysTick定时器中断服务程序调用lv_tick_inc()函数驱动LVGL内部的计数器递增,然后在主线程中调用lv_timer_handler()函数以时间片为节点执行LVGL的日常任务(输入事件、刷屏等操作)。从源码上看,整个LVGL的程序框架,就是建立在定时器刻度的轮询调度之上的,可见包含LVGL的MCU工程的顶级业务逻辑代码如下:

lv_ui guider_ui;

int main(void)
{
   
   
    BOARD_Init();
    SysTick_Config(CLOCK_SYS_FREQ / 100); /* 10ms. */

    lv_init();
    lv_port_disp_init();
    setup_ui(&guider_ui);
    events_init(&guider_ui);
    custom_init(&guider_ui);

    while (1)
    {
   
   
        lv_timer_handler(); /* 执行LVGL时间片轮询. */
    }
}

void SysT
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值