)
LVGL基礎控件:按鈕矩陣(Btnmatrix)上周調試一個智能家居面板項目,客戶要求在一屏內顯示16個場景快捷鍵,每個按鍵還要支持長按觸發配置。我第一反應是用16個lv_btn堆Grid布局,結果內存直接爆了——STM32H743的RAM被吃掉一大塊,界面還卡頓。后來換成Btnmatrix,一個控件搞定,內存占用不到原來的十分之一。這就是今天要聊的按鈕矩陣。從一次內存崩潰說起那次翻車讓我意識到,LVGL的Btnmatrix不是簡單的“按鈕數組”,它底層用位圖管理按鍵狀態,所有子按鈕共享同一個父控件的繪制上下文。這意味著你創建100個按鈕,它不會生成100個獨立對象,而是用一個控件管理100個“虛擬按鈕”。這對資源受限的嵌入式設備是救命的設計。創建按鈕矩陣lv_obj_t*btnm=lv_btnmatrix_create(lv_scr_act(