LVGL使用chart实时更新数据
近期学习lvgl,想做一个表格实时显示温湿度的变化,查阅了许多资料,用下面的方法实现了。
首先是建立和初始化表格,我这边是用GUI_Guider生成的。
然后建立2个数据
static lv_chart_series_t * screen_2_chart_1_0 = NULL;
static lv_chart_series_t * screen_2_chart_1_1 = NULL;
初始化后面再定义
screen_2_chart_1_0 = lv_chart_add_series(screen_2_chart_1, lv_color_make(0xff, 0x00, 0x00), LV_CHART_AXIS_PRIMARY_Y);
screen_2_chart_1_1 = lv_chart_add_series(screen_2_chart_1, lv_color_make(0x01, 0x28, 0xe9), LV_CHART_AXIS_PRIMARY_Y);
写一个时间更新函数
static void update_chart_data(lv_timer_t * timer)
{
dht11_read_data(&temp,&humi);//温湿度读取
lv_chart_set_next_value(screen_2_chart_1, screen_2_chart_1_0, temp);
lv_chart_set_next_value(screen_2_chart_1, screen_2_chart_1_1, humi);
}
最后在初始化后面创建,其中500为500毫秒即半秒刷新一次。
lv_timer_create(update_chart_data, 500, NULL);
建立数据和函数放在前面。
定义和建立timer放在setup函数里初始化。
效果如下:
作者:forepht