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

物联沃分享整理
物联沃-IOTWORD物联网 » LVGL使用chart实时更新数据

发表回复