lvgl科普
lvgl 主要特點:
Github庫整體瞭解
版本號編排原則
螢幕相容性
LVGL 問題處理:
lvgl 與 FreeRTOS
由於esp-idf本身帶了 FreeRTOS系統,因此需要關注一下作業系統相關的內容:
void lvgl_thread(void)
{
while(1) {
uint32_t time_till_next;
time_till_next = lv_timer_handler(); /*lv_lock/lv_unlock is called internally*/
thread_sleep(time_till_next); /* sleep for a while */
}
}
void other_thread(void)
{
/* You must always hold the mutex while using LVGL APIs */
lv_lock();
lv_obj_t *img = lv_image_create(lv_screen_active());
lv_unlock();
while(1) {
lv_lock();
/* change to the next image */
lv_image_set_src(img, next_image);
lv_unlock();
thread_sleep(2000);
}
}
以上的內容,總結一下:
1. 如果要用到作業系統,LV_USE_OS宏定義應該被設定。
2. 每當在其他執行緒(不是 lv_timer_handler()
函式所在的執行緒 )使用lvgl函式的時候,在其之前使用 lv_lock()
和 lv_unlock()
兩個函式