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回调一次数据刷新

 

 

 

 

posted @ 2022-12-16 15:19  ArsSama  阅读(2789)  评论(3编辑  收藏  举报