定时器处理程序

要处理 LVGL 的任务,您需要周期性地在以下之一中调用 lv_timer_handler()

  • main() 函数的 while(1) 循环

  • 定时器中断(优先级低于 lv_tick_inc()

  • 操作系统任务中周期性调用

时间间隔并不严格,但应大约为 5 毫秒,以保持系统的响应性。

示例:

while(1) {
  lv_timer_handler();
  my_delay_ms(5);
}

如果您希望在超级循环中使用 lv_timer_handler(),可以使用辅助函数 lv_timer_handler_run_in_period() 来简化移植:

while(1) {
    ...
    lv_timer_handler_run_in_period(5); /* 每 5 毫秒运行一次 lv_timer_handler() */
    ...
}

在操作系统环境中,可以将其与操作系统提供的 延迟睡眠 一起使用,以尽可能释放 CPU:

while (1) {
    lv_timer_handler_run_in_period(5); /* 每 5 毫秒运行一次 lv_timer_handler() */
    my_delay_ms(5);                    /* 延迟 5 毫秒以避免不必要的轮询 */
}

要了解有关定时器的更多信息,请访问 定时器 部分。