LVGL使用定时器更新数据
这个我就随意写了,只写怎么用辣。。。
一、
先创建一个定时器任务(宏)
lv_timer_t *updata_task1 = NULL;
二、
写一个定时器回调
/** * @brief updata_task1_cb 数据更新回调任务 * * @param tmr */ void updata_task1_cb(lv_timer_t *tmr) { ESP_LOGI(TAG, "Enter lv_timer cb"); /*更新显示数据*/ lv_label_set_text_fmt(ui_accex, "%.2f", acce.acce_x); lv_label_set_text_fmt(ui_accey, "%.2f", acce.acce_y); lv_label_set_text_fmt(ui_accez, "%.2f", acce.acce_z); lv_label_set_text_fmt(ui_gyrox, "%.2f", gyro.gyro_x); lv_label_set_text_fmt(ui_gyroy, "%.2f", gyro.gyro_y); lv_label_set_text_fmt(ui_gyroz, "%.2f", gyro.gyro_z); lv_label_set_text_fmt(ui_CalenderScreen_Label7, "Mpu_T: %.2f°", temp.temp); }
三、
在自己的ui初始化函数下面创建定时器任务回调
ui_init();/*my ui*/ /*lvgl定时任务*/ updata_task1 = lv_timer_create(updata_task1_cb, 250, 0); lv_timer_set_repeat_count(updata_task1,10);
这里的lv_timer_set_repeat_count就是重复进入回调的次数哈,如果不写就一直进入,看需求吧(可注释掉)。
结果:
250ms回调一次数据刷新
作者:LetitiaRon Z
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。