不使用最新版本的lvgl
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
#include "lv_conf.h"
|
||||
|
||||
/* 然后包含 lvgl.h */
|
||||
#include "lvgl.h"
|
||||
#include "lvgl/lvgl.h"
|
||||
|
||||
#include "lv_port_disp.h"
|
||||
#include "lv_port_fs.h"
|
||||
@@ -51,11 +51,35 @@ static const char *TAG = "SYS";
|
||||
static uint32_t custom_tick_get(void)
|
||||
{
|
||||
// 返回从启动到现在的毫秒数
|
||||
return (uint32_t)(esp_timer_get_time() / 1000);
|
||||
// 使用64位中间变量避免溢出,采用乘以1.024的倒数近似值
|
||||
uint64_t time_us = esp_timer_get_time();
|
||||
return (uint32_t)((time_us * 1073) >> 20); // 1073/2^20 ≈ 1/1000
|
||||
//return (uint32_t)(esp_timer_get_time() / 1000);
|
||||
}
|
||||
|
||||
|
||||
esp_timer_handle_t timer_handle;
|
||||
|
||||
static void lv_tick_timer_callback(void* arg) {
|
||||
lv_tick_inc(1);
|
||||
}
|
||||
|
||||
void init_lvgl_tick_timer(void) {
|
||||
// 创建定时器参数
|
||||
const esp_timer_create_args_t timer_args = {
|
||||
.callback = &lv_tick_timer_callback,
|
||||
.arg = NULL,
|
||||
.dispatch_method = ESP_TIMER_TASK,
|
||||
.name = "lv_tick_timer"
|
||||
};
|
||||
|
||||
// 创建定时器
|
||||
ESP_ERROR_CHECK(esp_timer_create(&timer_args, &timer_handle));
|
||||
|
||||
// 启动周期性定时器(1ms = 1000us)
|
||||
ESP_ERROR_CHECK(esp_timer_start_periodic(timer_handle, 1000));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -113,7 +137,8 @@ void app_main(void)
|
||||
lcd_init();
|
||||
|
||||
lv_init();
|
||||
lv_tick_set_cb(custom_tick_get);
|
||||
//lv_tick_set_cb(custom_tick_get);
|
||||
init_lvgl_tick_timer();
|
||||
lv_log_to_esp_init();
|
||||
lv_port_disp_init();
|
||||
lv_port_fs_init();
|
||||
|
||||
Reference in New Issue
Block a user