UCGUI學習之路 5 MemDev

2021-08-10 01:26:46 字數 704 閱讀 6340

lcd液晶屏上有動畫的時候,一般都需要高頻重新整理螢幕。

如果不使用memdev,而按傳統方法做動畫效果,螢幕會閃爍,效果不好。

memdev的使用是為了上述情況引起的閃爍。

其原理在於,先把這一幀到下一幀的顯示過程在記憶體中預演。把生成的最終結果,再重新整理到螢幕上。這樣一來螢幕的顯示內容變化次數降到最低。直接輸出需要顯示的內容。有效的避免了閃爍。

我也做了個實驗,在一塊螢幕上,對比兩種效果,一目了然。

memdev在**中的使用也很簡單:

原始碼關鍵部分:

gui_memdev_handle mh;//申請乙個變數放控制代碼

mh = gui_memdev_create(0, 30, 240, 145);

gui_memdev_select(mh);//選擇使用

gui_setcolor(gui_red);//這5行是改變過程

gui_fillcircle(posx,90,30);

gui_setcolor(gui_yellow);

gui_settextmode(gui_textmode_trans);

gui_dispstringat("hello world",20,70);

gui_memdev_copytolcd(mh);//把上述過程的結果輸出

gui_memdev_clear(mh);//清除記憶體

UCGUI學習之路 2 移植

開始學習之前,先簡單說說我的移植過程及一些問題的解決。ucgui 的源 我用的是 3.90 版的,並且準備乙個簡單工程,並且編譯無誤。開啟源 資料夾,複製 start gui 目錄下所有檔案到工程資料夾中,複製 start config 目錄下所有檔案 到工程目錄下的 gui資料夾中,複製 samp...

Linux學習之路(5)

1 字串處理函式 include include 1 gets可以讀空格,但是本身不安全,可能導致陣列越界 int main1 2 fgets 可以讀空格 可以讀換行 當陣列大小不夠的時候會自動截斷 保留乙個字元最為 0 使用 int main2 3 其他輸入輸出 getchar putchar p...

python學習之路(5)

計算機之所以能做很多自動化的任務,因為它可以自己做條件判斷。比如,輸入使用者年齡,根據年齡列印不同的內容,在python程式中,用if語句實現 age 20 if age 18 print your age is age,s 歲 your age is 20 歲 根據python的縮排規則,如果if...