衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Hi3861移植LVGL教程

嵌入式Share ? 來源:嵌入式Share ? 2023-05-18 09:23 ? 次閱讀

一、前言

給 Hi3861 適配了硬件 spi ,master 模式下最高 spi 速率可以達到 40M,用來驅動 oled 屏幕。適配過程遇到了一個芯片bug,困擾了很久,clk 管腳驅動能力差,需要外接一個上拉電阻才能正常運行。適配完成移植 lvgl 8,分享適配的過程。

47bba072-f519-11ed-90ce-dac502259ad0.png

二、LVGL移植

上lvgl開源倉搞代碼,https://github.com/lvgl/lvgl

2.1 適配 Porting 層

關鍵點在于將 oled 的畫點函數和 lvgl 代碼 disp_flush 關聯起來。參考如下我的移植,此處 draw point 將畫點數據放到一個軟件 buff 里面不會刷新硬件,硬件的刷新我單獨創建一個線程干這活,所以使用 for 循環遍歷,簡單!

47d5fce2-f519-11ed-90ce-dac502259ad0.png

因為只有一個顯示,沒有適配輸入以及文件系統,這兩個 port 的適配之后再做。

2.2 頭文件適配

因為是 oled,只有單色,所以顏色我選了最低8 位色,同時將 lvgl 字體調整為 8 位。

除此之外就是調整 lv_conf.h 里面的屏幕寬度了,其他的可以再后續修改。

47f074dc-f519-11ed-90ce-dac502259ad0.png

2.3 liteos 線程適配

首先適配 lvgl tick 心跳,創建一個軟件定時器,1ms 自加 1:

480d1bd2-f519-11ed-90ce-dac502259ad0.png

再創建一個軟件定時器周期性的調用 lvgl 的 周期處理函數:

48270e02-f519-11ed-90ce-dac502259ad0.png

前面說的我的 oled 的 spi 硬件刷新在單獨的線程里面執行,中斷回調的方式,每次刷新256字節,刷新器件,刷新線程會被掛起,釋放 cpu 資源,線程設計如下:

483d8574-f519-11ed-90ce-dac502259ad0.png

三、簡單的 Demo

寫一個簡單的 buttom demo:

static void lvgl_ui_init(void)
{
static lv_style_t style;
lv_style_init(&style);
lv_style_set_radius(&style, 2);
lv_style_set_outline_width(&style, 2);
lv_style_set_outline_color(&style, lv_palette_main(LV_PALETTE_BLUE));
lv_style_set_outline_pad(&style, 0);
lv_obj_t *bkg_obj = lv_obj_create(lv_scr_act()); /*創建 obj*/
lv_obj_set_style_bg_color(bkg_obj , lv_color_hex(0x0),0);
lv_obj_set_pos(bkg_obj ,0, 0);
lv_obj_set_size(bkg_obj, 128, 64);
lv_obj_t *btn = lv_btn_create(lv_scr_act()); /*Add a button to the current screen*/
lv_obj_set_style_bg_color(btn , lv_color_hex(0x0),0);
lv_obj_set_size(btn, 70, 24); /*Set its size*/
lv_obj_add_style(btn, &style, 0);
lv_obj_center(btn);
lv_obj_t * label = lv_label_create(btn); /*Add a label to the button*/
lv_label_set_text(label, "Button"); /*Set the labels text*/
}

四、下載運行

可以看到 oled 顯示創建好的按鍵。

485f1ad6-f519-11ed-90ce-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51170

    瀏覽量

    427222
  • 上拉電阻
    +關注

    關注

    5

    文章

    363

    瀏覽量

    30732
  • 移植
    +關注

    關注

    1

    文章

    383

    瀏覽量

    28193
  • Hi3861
    +關注

    關注

    1

    文章

    62

    瀏覽量

    6611
  • LVGL
    +關注

    關注

    1

    文章

    91

    瀏覽量

    3081

原文標題:四、下載運行

文章出處:【微信號:嵌入式Share,微信公眾號:嵌入式Share】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    中文編程鴻蒙Hi3861開發基礎案例之-04八段數碼管

    中文編程鴻蒙Hi3861開發控制八段數碼管
    的頭像 發表于 05-11 11:47 ?2970次閱讀
    中文編程鴻蒙<b class='flag-5'>Hi3861</b>開發基礎案例之-04八段數碼管

    小熊派Hi3861獲取mpu6050數據在oled屏幕中顯示

    小熊派Hi3861獲取mpu6050數據在oled屏幕中顯示
    的頭像 發表于 08-14 14:39 ?2518次閱讀
    小熊派<b class='flag-5'>Hi3861</b>獲取mpu6050數據在oled屏幕中顯示

    鴻蒙OpenHarmony【輕量系統 燒錄】 (基于Hi3861開發板)

    針對Hi3861開發板,除了DevEco Device Tool
    的頭像 發表于 05-10 16:59 ?1201次閱讀
    鴻蒙OpenHarmony【輕量系統 燒錄】 (基于<b class='flag-5'>Hi3861</b>開發板)

    hi3861如何在移植的main.c中初始化kernel和系統

    代燒友提問:hi3861的vendor代碼中找不到如何從flashboot的main.c文件啟動內核以及系統的函數和過程。無法從hi3861代碼中得到移植啟示。其中boot_kernel函數中使用了
    發表于 11-19 12:03

    鴻蒙OpenHarmony-HI3861L移植教程

    HI3861有兩款單片機一個是HI3861,一個是HI3861L,HI3861L是HI3861的低功耗版本
    發表于 08-30 19:50

    HarmonyOS Hi3861開發套件-編程速查

    針對Hi3861開發套件整理的編程速查框圖,有需要的小伙伴可以自行下載查看。
    發表于 10-19 16:54 ?87次下載
    HarmonyOS <b class='flag-5'>Hi3861</b>開發套件-編程速查

    HarmonyOS Hi3861 WiFi操作 熱點鏈接

    之前我們使用Hi3861的時候,是使用AT指令連接到WiFi熱點的。但是很多時候,我們需要實現開機后自動連接到某個熱點,光靠AT指令不行。Hi3861為我們提供了WiFi操作的相關API,方便我們編寫代碼,實現熱點連接。
    發表于 10-21 16:44 ?69次下載
    HarmonyOS <b class='flag-5'>Hi3861</b> WiFi操作 熱點鏈接

    基于鴻蒙系統+Hi3861的WiFi小車詳解

    我們得有一套WiFi小車套件,其實也是Hi3861加上電機、循跡模塊、超聲波等模塊。
    的頭像 發表于 11-01 09:41 ?7783次閱讀

    Hi3861其他驅動的開發示例

    摘要:本文簡單介紹Hi3861其他驅動的開發示例、包括PWM、SPI、SDIO等。
    的頭像 發表于 03-02 18:04 ?3598次閱讀
    <b class='flag-5'>Hi3861</b>其他驅動的開發示例

    基于鴻蒙系統+Hi3861的WiFi小車開發

    本文簡單介紹鴻蒙系統 + Hi3861 的WiFi小車開發,適用于開發潤和Hi3861開發板的小伙伴們。
    的頭像 發表于 03-03 09:31 ?5814次閱讀
    基于鴻蒙系統+<b class='flag-5'>Hi3861</b>的WiFi小車開發

    Hi3861編譯燒錄更快捷

    Windows環境開發Hi3861,顯著提升編譯、燒錄效率,同時還帶來了更多實用的功能及模板,為廣大開發者朋友帶來更加高效、便捷的開發體驗。接下來,讓我們來看看吧! 純Windows環境開發Hi3861,編譯燒錄
    的頭像 發表于 02-11 13:25 ?982次閱讀

    中文編程鴻蒙Hi3861開發基礎案例之-01創建新工程

    中文編程鴻蒙Hi3861開發創建新工程
    的頭像 發表于 05-11 09:53 ?2900次閱讀
    中文編程鴻蒙<b class='flag-5'>Hi3861</b>開發基礎案例之-01創建新工程

    中文編程鴻蒙Hi3861開發基礎案例之-02LED燈控制

    中文編程鴻蒙Hi3861開發控制LED燈
    的頭像 發表于 05-11 09:54 ?3073次閱讀
    中文編程鴻蒙<b class='flag-5'>Hi3861</b>開發基礎案例之-02LED燈控制

    中文編程鴻蒙Hi3861開發基礎案例之-03交通紅綠燈

    中文編程鴻蒙Hi3861開發模擬交通紅綠燈亮與滅控制
    的頭像 發表于 05-11 11:27 ?2265次閱讀
    中文編程鴻蒙<b class='flag-5'>Hi3861</b>開發基礎案例之-03交通紅綠燈

    中文編程鴻蒙Hi3861開發基礎案例之-05按鍵檢測

    中文編程鴻蒙Hi3861開發對按鍵進行輸入檢測
    的頭像 發表于 05-11 12:04 ?3040次閱讀
    中文編程鴻蒙<b class='flag-5'>Hi3861</b>開發基礎案例之-05按鍵檢測
    机械百家乐官网技巧| 二八杠网| 邯郸百家乐官网园怎么样| 金百亿百家乐官网娱乐城| 新东方百家乐的玩法技巧和规则| 真人百家乐官网分析软件是骗局| 百家乐天下第一庄| 百家乐官网太阳城怎么样| 喜力百家乐的玩法技巧和规则| 鲨鱼百家乐官网游戏平台| 威尼斯人娱乐城易博lm0| 新彩百家乐官网的玩法技巧和规则 | 百家乐官网娱乐城游戏| 最好百家乐的玩法技巧和规则| 百家乐官网自动算牌软件| 大发888洗码| 百家乐开庄概率| 五大连池市| 博彩百家乐字谜总汇二丹东| 百家乐官网博娱乐赌百家乐官网的玩法技巧和规则 | 百家乐官网视频游戏会员| 百家乐官网1元投注| 博彩网址大全| 百家乐投注软件有用吗| 澳门百家乐官网技术| 大发888娱乐城登陆| 百家乐在线投注系统| 赌博百家乐官网技术| 蓝盾国际| 真人百家乐软件云南景| 尊龙百家乐官网娱乐| 光泽县| 大发888网页| 长乐坊百家乐娱乐城| 大发百家乐官网现金| 皇冠体育| 百家乐网上赌场| 鼎龙百家乐官网的玩法技巧和规则 | 真人百家乐官网新开户送彩金| 澳门顶级赌场官网| 百家乐赌博现金网平台排名|