LVGL-定时器

目录

一、定时器结构体

二、常用函数

三、示例


一、定时器结构体

typedef struct _lv_timer_t {
    uint32_t period;             // 定时器运行的频率
    uint32_t last_run;           // 定时器上次运行的时间
    lv_timer_cb_t timer_cb;      // 定时器注册的回调函数
    void * user_data;            // 用户自定义数据
    int32_t repeat_count;        // 重复次数,-1为永久重复,0为关闭,大于0为重复次数。
    uint32_t paused : 1;         // 定时器运行状态
} lv_timer_t;
 

二、常用函数

/* 创建定时器 */
lv_timer_t * lv_timer_create(lv_timer_cb_t timer_xcb, uint32_t period, void * user_data);
 
/* 删除定时器 */
void lv_timer_del(lv_timer_t * timer);
 
/* 使定时器挂起 */
void lv_timer_pause(lv_timer_t * timer);
 
/* 使定时器进入运行状态 */
void lv_timer_resume(lv_timer_t * timer);
 
/* 设置定时器的回调函数  */
void lv_timer_set_cb(lv_timer_t * timer, lv_timer_cb_t timer_cb);
 
/* 设置定时器的运行频率 */
void lv_timer_set_period(lv_timer_t * timer, uint32_t period);
 
/* 这里应该是读取定时器上次运行的时间 */
void lv_timer_ready(lv_timer_t * timer);
 
/* 设置定时器运行的次数 */
void lv_timer_set_repeat_count(lv_timer_t * timer, int32_t repeat_count);
 
/* 重置定时器运行的频率 */
void lv_timer_reset(lv_timer_t * timer);
 
/* 启用或禁用整个定时器处理 */
void lv_timer_enable(bool en);
 
/* 获取定时器空闲百分比 */
uint8_t lv_timer_get_idle(void);
 
/* 遍历定时器 */
lv_timer_t * lv_timer_get_next(lv_timer_t * timer);
 

三、示例

demo01 重复运行定时器

lv_timer_t * lvgl_task1 = NULL;
 
void lvgl_task1_cb(lv_timer_t * tmr)
{
	LV_LOG_USER("timer test ......");
}
 
void lvgl_gui_test(void)
{
    lv_obj_t *test_label = lv_label_create(lv_scr_act());
    lv_label_set_text(test_label, LV_SYMBOL_OK);      // 正常显示,则应显示一个 ✓ 字符。
    lv_obj_align(test_label, LV_ALIGN_CENTER, 0, 0);
 
    lvgl_task1 = lv_timer_create(lvgl_task1_cb, 1000, 0);      // 运行周期为lvgl的1000个滴答时钟
}

demo02 运行指定次数的定时器

lv_timer_t * lvgl_task1 = NULL;
 
void lvgl_task1_cb(lv_timer_t * tmr)
{
	LV_LOG_USER("timer test ......");
}
 
void lvgl_gui_test(void)
{
    lv_obj_t *test_label = lv_label_create(lv_scr_act());
    lv_label_set_text(test_label, LV_SYMBOL_OK);      // 正常显示,则应显示一个 ✓ 字符。
    lv_obj_align(test_label, LV_ALIGN_CENTER, 0, 0);
 
    lvgl_task1 = lv_timer_create(lvgl_task1_cb, 1000, 0);      // 运行周期为lvgl的1000个滴答时钟
    lv_timer_set_repeat_count(lvgl_task1, 5);
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光下的麦克

您的犒赏是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值