伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

3天內不再提示

探索 Kunlun Pi | 基于匠芯創D13x系列開發板分享(二)

匠芯創ArtInChip ? 2025-11-18 18:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者ID:jf_92517703

環境搭建


板卡實物

fcc4d64a-c466-11f0-8ce9-92fbcf53809c.png

首次編譯燒寫源碼

下載源碼:https://gitee.com/artinchip/luban-lite.git

VSCode 安裝插件

fcd865de-c466-11f0-8ce9-92fbcf53809c.png

在VSCode打開源碼

fce152a2-c466-11f0-8ce9-92fbcf53809c.png

在第一次編譯之前必須清理下工程

fcf1a530-c466-11f0-8ce9-92fbcf53809c.png

下載燒寫工具:

https://gitee.com/artinchip/tools,下載后安裝。

fd00743e-c466-11f0-8ce9-92fbcf53809c.png

在VSCode安裝插件后打開SDK目錄

fd12f30c-c466-11f0-8ce9-92fbcf53809c.png

否則報錯

fd23823a-c466-11f0-8ce9-92fbcf53809c.png

選擇配置

fd34b0aa-c466-11f0-8ce9-92fbcf53809c.png

編譯bootloader程序,選擇配置。

fd4ec1de-c466-11f0-8ce9-92fbcf53809c.png

編譯

fd5c09d4-c466-11f0-8ce9-92fbcf53809c.png

編譯helloword程序,選擇配置。

fd667ba8-c466-11f0-8ce9-92fbcf53809c.png

編譯APP
fd73ac42-c466-11f0-8ce9-92fbcf53809c.png

燒錄固件

先按住【BOOT】,然后按下【RESET】,AiBrun顯示設置已連接選擇生成的固件,點擊【開始】,完成下載。fd83596c-c466-11f0-8ce9-92fbcf53809c.png

焊接調試串口

fd900428-c466-11f0-8ce9-92fbcf53809c.png

打開mobarxterm查看日志

fda474f8-c466-11f0-8ce9-92fbcf53809c.png

SDK應用程序入口

fdc51802-c466-11f0-8ce9-92fbcf53809c.png

修改RTT的main函數,循環打印輸出計數。

application\rt-thread\helloworld\main.c

fdd032a0-c466-11f0-8ce9-92fbcf53809c.png

板卡初始化文件:target\d13x\kunlunpi88-nor\board.c

顯示了軟件版本【Version: Car1.2.3】,說明找到了板子的初始化文件【board.c】文件。

fde3789c-c466-11f0-8ce9-92fbcf53809c.png

板卡的配置文件:

target\d13x\common\Kconfig.board

target\configs\d13x_kunlunpi88-nor_rt-thread_helloworld_defconfig

KEY測試


使能gpio_key的測試程序

fdef0522-c466-11f0-8ce9-92fbcf53809c.png

修改了對應的配置文件

fdfce818-c466-11f0-8ce9-92fbcf53809c.png

根據配置添加編譯

fe0ee6f8-c466-11f0-8ce9-92fbcf53809c.png

關聯源碼:

bsp\examples\test-gpio\test_gpio_key.c

fe1a538a-c466-11f0-8ce9-92fbcf53809c.png

fe290c5e-c466-11f0-8ce9-92fbcf53809c.png

LVGL-Music Demo


添加LVGL的Music示例Demo測試

要想直到helloword的程序到底運行的什么LVGL程序,首先查看運行的線程,發現存在LVGL線程。

fe32c6d6-c466-11f0-8ce9-92fbcf53809c.png

在VSCode中搜索【LVGL】線程的創建:packages\artinchip\lvgl-ui\lvgl_v9\lvgl\env_support\rt-thread\lv_rt_thread_port.c

在RT-Thread 環境中使用【scons】(即通過 ENV 工具鏈)編譯時,會自動定義宏【__RTTHREAD__】

fe3de98a-c466-11f0-8ce9-92fbcf53809c.png

線程初始化位置:packages\artinchip\lvgl-ui\lv_demo.c

fe466e7a-c466-11f0-8ce9-92fbcf53809c.png

打開工程配置:scons --menuconfig

配置文件變化:target\configs\d13x_kunlunpi88-nor_rt-thread_helloworld_defconfig

fe542be6-c466-11f0-8ce9-92fbcf53809c.png

這就是出廠的demo入口【ui_init】

fe60b762-c466-11f0-8ce9-92fbcf53809c.png

【void lv_example_observer_2(void)】這個沒有被調用,所以【void aic_ui_init()】就是入口:packages\artinchip\lvgl-ui\aic_ui.c

fe72da0a-c466-11f0-8ce9-92fbcf53809c.png

在這里修改為【music】的demo

fe85bc10-c466-11f0-8ce9-92fbcf53809c.png

編譯下載

fe9817fc-c466-11f0-8ce9-92fbcf53809c.png

打開內存和性能監視:packages\artinchip\lvgl-ui\lvgl_v9\lv_conf.h

fea3da56-c466-11f0-8ce9-92fbcf53809c.png

屏幕刷新幀率最低35幀,CPU使用最高50%。

feadbf12-c466-11f0-8ce9-92fbcf53809c.png

LVGL-自己添加APP


要自己定義自己的UI程序,我們自己僅僅需要實現【ui_init】函數即可,從官方的串口工具得到啟發。

第一步

fec43454-c466-11f0-8ce9-92fbcf53809c.png

第二步

fed2ea94-c466-11f0-8ce9-92fbcf53809c.png

第三步

ff027476-c466-11f0-8ce9-92fbcf53809c.png

第四步

ff0df1fc-c466-11f0-8ce9-92fbcf53809c.png

那我自己做一個串口工具的UI試試

在【packages\artinchip\lvgl-ui\lv_demo.c】中添加源碼,源碼由通義千問完成。

#include"lvgl.h"#include"stdio.h"#include"string.h"http:// 全局控件句柄staticlv_obj_t*rx_textarea =NULL;staticlv_obj_t*tx_textarea =NULL;staticlv_obj_t*baud_dropdown =NULL;staticlv_obj_t*port_dropdown =NULL;staticlv_obj_t*hex_recv_checkbox =NULL;staticlv_obj_t*hex_send_checkbox =NULL;staticlv_obj_t*interval_textarea =NULL;staticlv_obj_t*auto_send_checkbox =NULL;// 模擬發送按鈕回調staticvoidsend_btn_event_cb(lv_event_t*e){constchar*text =lv_textarea_get_text(tx_textarea);if(text &&strlen(text) >0) {// 模擬追加到接收區(實際應由 UART 中斷處理)staticcharbuf[128];snprintf(buf,sizeof(buf),"Sent: %s\r\n", text);lv_textarea_add_text(rx_textarea, buf);// lv_textarea_cursor_end(rx_textarea); // 滾動到底部}}// 模擬打開串口按鈕回調staticvoidopen_uart_btn_event_cb(lv_event_t*e){

charmsg[64];snprintf(msg,sizeof(msg),"Opened %s @ %sbps\r\n","com3","115200");lv_textarea_add_text(rx_textarea, msg);

// lv_textarea_cursor_end(rx_textarea);}// 創建串口調試助手 UIvoidcreate_uart_tool(void) {// 主容器:水平布局,左右分區lv_obj_t *main_cont =lv_obj_create(lv_screen_active());lv_obj_set_size(main_cont,LV_PCT(100),LV_PCT(100));lv_obj_set_layout(main_cont,LV_LAYOUT_FLEX);lv_obj_set_flex_flow(main_cont,LV_FLEX_FLOW_ROW);lv_obj_set_style_pad_all(main_cont,8,0);//lv_obj_set_style_bg_color(main_cont, lv_color_light_gray(), 0);

// ========== 左側:控制面板 ==========lv_obj_t*left_panel =lv_obj_create(main_cont);lv_obj_set_width(left_panel,160);lv_obj_set_height(left_panel,LV_PCT(100));lv_obj_set_layout(left_panel, LV_LAYOUT_FLEX);lv_obj_set_flex_flow(left_panel, LV_FLEX_FLOW_COLUMN);lv_obj_set_style_pad_row(left_panel,8,0);// 串口端口lv_obj_t*label =lv_label_create(left_panel);lv_label_set_text(label,"Port:");port_dropdown =lv_dropdown_create(left_panel);lv_dropdown_set_options(port_dropdown,"UART0\nUART1\nUART2\nUART3");// 波特率label =lv_label_create(left_panel);lv_label_set_text(label,"Baudrate:");baud_dropdown =lv_dropdown_create(left_panel);lv_dropdown_set_options(baud_dropdown,"9600\n19200\n38400\n57600\n115200");lv_dropdown_set_selected(baud_dropdown,4); // 默認 115200// 打開串口按鈕lv_obj_t*open_btn =lv_button_create(left_panel);lv_obj_set_width(open_btn,LV_PCT(100));lv_obj_add_event_cb(open_btn, open_uart_btn_event_cb, LV_EVENT_CLICKED,NULL);lv_obj_t*btn_label =lv_label_create(open_btn);lv_label_set_text(btn_label,"Open UART");lv_obj_center(btn_label);// HEX 顯示hex_recv_checkbox =lv_checkbox_create(left_panel);lv_checkbox_set_text(hex_recv_checkbox,"Hex Display");// HEX 發送hex_send_checkbox =lv_checkbox_create(left_panel);lv_checkbox_set_text(hex_send_checkbox,"Hex Send");// 發送間隔label =lv_label_create(left_panel);lv_label_set_text(label,"Interval (ms):");interval_textarea =lv_textarea_create(left_panel);lv_textarea_set_text(interval_textarea,"1000");lv_textarea_set_one_line(interval_textarea,true);lv_textarea_set_max_length(interval_textarea,8);lv_obj_set_height(interval_textarea,30);// 自動發送auto_send_checkbox =lv_checkbox_create(left_panel);lv_checkbox_set_text(auto_send_checkbox,"Auto Send");// 發送按鈕lv_obj_t*send_btn =lv_button_create(left_panel);lv_obj_set_width(send_btn,LV_PCT(100));lv_obj_add_event_cb(send_btn, send_btn_event_cb, LV_EVENT_CLICKED,NULL);btn_label =lv_label_create(send_btn);lv_label_set_text(btn_label,"Send");lv_obj_center(btn_label);// ========== 右側:接收/發送區 ==========lv_obj_t*right_panel =lv_obj_create(main_cont);lv_obj_set_flex_grow(right_panel,1);lv_obj_set_height(right_panel,LV_PCT(100));lv_obj_set_flex_flow(right_panel, LV_FLEX_FLOW_COLUMN);lv_obj_set_layout(right_panel, LV_LAYOUT_FLEX);lv_obj_set_style_pad_row(right_panel,8,0);// 接收區label =lv_label_create(right_panel);lv_label_set_text(label,"Received Data:");lv_obj_set_style_margin_bottom(label,4,0);rx_textarea =lv_textarea_create(right_panel);lv_obj_set_flex_grow(rx_textarea,1);lv_textarea_set_placeholder_text(rx_textarea,"Waiting for data...");//lv_obj_clear_flag(rx_textarea, LV_OBJ_FLAG_EDITABLE); // 只讀lv_obj_set_style_bg_color(rx_textarea,lv_color_white(),0);lv_obj_set_style_text_color(rx_textarea,lv_color_black(),0);// 發送區label =lv_label_create(right_panel);lv_label_set_text(label,"Transmit Data:");lv_obj_set_style_margin_bottom(label,4,0);tx_textarea =lv_textarea_create(right_panel);lv_obj_set_flex_grow(tx_textarea,1);lv_textarea_set_placeholder_text(tx_textarea,"Enter data to send...");lv_obj_set_style_bg_color(tx_textarea,lv_color_white(),0);lv_obj_set_style_text_color(tx_textarea,lv_color_black(),0);// 可選:設置默認字體(防止文字太小)lv_obj_set_style_text_font(lv_screen_active(), &lv_font_montserrat_14,0);}

ff20d312-c466-11f0-8ce9-92fbcf53809c.png

ff322b44-c466-11f0-8ce9-92fbcf53809c.png

LVGL-使用AIUIBuilder開發


使用AIUIBuilder開發LVGL程序值得點贊,頁面繪制、資源管理一次解決,安逸啊!

使用AIUIBuilder

scons --menuconfig

打開工程配置

ff3ec138-c466-11f0-8ce9-92fbcf53809c.png

先設計一個簡單的demo

ff47ed08-c466-11f0-8ce9-92fbcf53809c.png

將生成的【ui_builder】下的文件全部拷貝到工程目錄【packages\artinchip\lvgl-ui\aic_demo\ui_builder】。

首次拷貝可能需要拷貝【lv_conf_custom.h】文件,因為拷貝了這個文件導致整個LVGL源碼會重新編譯,因為【lv_conf.h】包含了它,在【lv_conf_custom.h】文件在沒有改變就不要拷貝這個文件。

運行結果

ff553bb6-c466-11f0-8ce9-92fbcf53809c.png

字庫和圖片資源測試

ff644f3e-c466-11f0-8ce9-92fbcf53809c.png

字體生成

ff6eb596-c466-11f0-8ce9-92fbcf53809c.png

還可以添加各種字體文件

ff7a0f22-c466-11f0-8ce9-92fbcf53809c.png

圖片資源的使用

ff89c188-c466-11f0-8ce9-92fbcf53809c.png

測試結果

ff92a6ae-c466-11f0-8ce9-92fbcf53809c.png

添加用戶APP文件夾到構建系統


添加自己的APP代碼

**修改SConscript文件,**修改此文件會導致整個工程重新編譯

添加user_app目錄及子目錄:SConscript

user_app內部的SConscript文件都是一樣的,復制于【application\rt-thread\helloworld\SConscript】,Kconfig都是空文件。

ff9ecae2-c466-11f0-8ce9-92fbcf53809c.png

ffa7566c-c466-11f0-8ce9-92fbcf53809c.png

**這個構建腳本大致意思是,**添加當前目錄的c文件到構建系統,遞歸添加子目錄的c文件到構建系統。

Import('RTT_ROOT')Import('rtconfig')frombuilding import *
cwd = GetCurrentDir()src = Glob('*.c')CPPPATH = [cwd, ]
CFLAGS =' -c -ffunction-sections'
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH, CFLAGS=CFLAGS)
list = os.listdir(cwd)foriteminlist: ifos.path.isfile(os.path.join(cwd, item,'SConscript')): group=group+ SConscript(os.path.join(item,'SConscript'))
Return('group')

application\user_app\helloworld\user_main.c

/* * Copyright (c) 2022-2024, ArtInChip Technology Co., Ltd * * SPDX-License-Identifier: Apache-2.0 * * Authors: weilin.peng@artinchip.com */
#include#ifdefRT_USING_ULOG#include#endif
rt_device_tg_serial;
intuser_app_entry(void){ log_i("INIT_APP_EXPORT Hello World!\n"); g_serial =rt_device_find("uart2");
if(!g_serial) { log_w("find %s failed!\n","uart2"); return-RT_ERROR; } rt_err_t ret =rt_device_open(g_serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX); if(ret != RT_EOK) { log_w("open %s failed !\n","uart2"); return-RT_ERROR; }
return0;}INIT_APP_EXPORT(user_app_entry);

application\user_app\ui\ui.c

/* * Copyright (c) 2022-2024, ArtInChip Technology Co., Ltd * * SPDX-License-Identifier: Apache-2.0 * * Authors: weilin.peng@artinchip.com */
#include#ifdefRT_USING_ULOG#include#endif
externrt_device_tg_serial;voidscreen_button_1_custom_clicked(void){ char*msg ="Hello World!\n"; log_i("send:%s\n",msg); rt_device_write(g_serial,0, msg,strlen(msg));}

screen_button_1_custom_clicked這個是按鍵點擊的重寫函數,原本是弱定義。

ffb22af6-c466-11f0-8ce9-92fbcf53809c.png

測試結果

點擊button串口發送hello word。

ffe4e7a2-c466-11f0-8ce9-92fbcf53809c.png

fff252fc-c466-11f0-8ce9-92fbcf53809c.png

以上內容來源:電子發燒友論壇

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

    關注

    3

    文章

    178

    瀏覽量

    17500
  • 開發板
    +關注

    關注

    26

    文章

    6358

    瀏覽量

    119746
  • 匠芯創
    +關注

    關注

    0

    文章

    63

    瀏覽量

    201
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Banana Pi開源社區基于瑞微RK3588開發板,DeepSeek開發利器

    Banana Pi開源社區基于瑞微RK3588開發板,DeepSeek開發利器
    的頭像 發表于 02-19 18:25 ?4202次閱讀
    Banana <b class='flag-5'>Pi</b>開源社區基于瑞<b class='flag-5'>芯</b>微RK3588<b class='flag-5'>開發板</b>,DeepSeek<b class='flag-5'>開發</b>利器

    探索 KunLun Pi | 基于D13x系列開發板分享(三)

    本次開箱的D133CBSKunLunPi開發板,正面配備了一塊4.3寸的電容觸摸屏,開機即用,系統內置主菜單和豐富的demo演示程序,方便用戶快速體驗各項功能。開發板開箱及介紹開發板
    的頭像 發表于 11-19 09:10 ?4966次閱讀
    <b class='flag-5'>探索</b> <b class='flag-5'>KunLun</b> <b class='flag-5'>Pi</b> | 基于<b class='flag-5'>匠</b><b class='flag-5'>芯</b><b class='flag-5'>創</b><b class='flag-5'>D13x</b><b class='flag-5'>系列</b><b class='flag-5'>開發板</b>分享(三)

    科技】D13X-DOC

    產品簡介 D13x D13x 系列是一款高性能的工業級高清顯示和智能控制 MCU,采用國產自主高算力 RISC-V 內核,配備強大的 2D 圖形加速處理器, 內置自研 PNG/JPEG
    發表于 07-02 09:52

    【新品體驗】D133CBS KunLun Pi開發板試用體驗

    D133CBS RISC-V KunLun Pi V1.0 是一款基于
    發表于 07-15 17:16

    D133CBS RISC-V KunLun Pi V1.0開發板開發資料

    開發板簡介 D13x 是 ArtInChip 一款基于 RISC-V 的高性能、國產自主、工業級全高清顯示與智能控制 MCU,配備強大的 2D 圖形加速處理器、 PNG 解碼、JPEG 編解碼引擎
    發表于 07-15 17:27

    D133CBS KunLun Pi開發板試用體驗】《D133CBS RISC-V KunLun Pi 》 開箱及搭建vscode開發環境

    一、開箱概覽 包裝內容 打開包裹:D133CBS開發板 x1 板子的做工也是相當不錯,驚
    發表于 09-04 22:33

    D133CBS KunLun Pi開發板試用體驗】1、開發板開箱及介紹

    開箱 非常感謝ArtInChip 與電子發燒友論壇給的這次D133CBS KunLun Pi
    發表于 09-05 13:49

    D133CBS KunLun Pi開發板試用體驗】2、SDK下載+環境搭建

    的luban-lite文件夾 在vscode的插件商店搜索:LubanLite,安裝 左側會出現的LOGO,點開它,就有了一堆快捷操作 創建項目 點擊open project,可以按標簽進行篩選
    發表于 09-05 19:33

    D133CBS KunLun Pi開發板試用體驗】+環境搭建

    板卡實物 昆侖派KunLun Pi ArtInChipD133CBS工業級HMI
    發表于 09-10 17:01

    D133CBS KunLun Pi開發板試用體驗】開箱評測

    D133CBS KunLun Pi開發板試用
    發表于 09-11 13:44

    D133CBS KunLun Pi開發板試用體驗】介紹、環境搭建

    D133CBS KunLun Pi開發板試用
    發表于 09-17 10:35

    【免費試用】D133CBS KunLun Pi開發板試用體驗

    D133CBSRISC-VKunLunPiV1.0是一款基于D13x芯片的人機交互應用開發板
    的頭像 發表于 07-29 08:06 ?1330次閱讀
    【免費試用】<b class='flag-5'>匠</b><b class='flag-5'>芯</b><b class='flag-5'>創</b><b class='flag-5'>D</b>133CBS <b class='flag-5'>KunLun</b> <b class='flag-5'>Pi</b><b class='flag-5'>開發板</b>試用體驗

    D13x系列通過工業和信息化部重點實驗室測試

    2025年8月,中國電子技術標準化研究院(電子標準院)作為集成電路測試與評價工業和信息化部重點實驗室依托單位,完成了對RISC-V顯示控制一體MCUD13x
    的頭像 發表于 08-29 18:48 ?1304次閱讀
    <b class='flag-5'>匠</b><b class='flag-5'>芯</b><b class='flag-5'>創</b><b class='flag-5'>D13x</b><b class='flag-5'>系列</b>通過工業和信息化部重點實驗室測試

    賦能兩輪車新國標 | D13x系列芯片為手機無線投屏與導航提供核心支持

    近日,推出基于D13x系列工業級顯示控制芯片的兩輪車無線投屏解決方案。該方案積極響應兩輪車新國標智能化要求,以極高的性價比為核心優勢,
    的頭像 發表于 09-17 18:03 ?928次閱讀
    賦能兩輪車新國標 | <b class='flag-5'>匠</b><b class='flag-5'>芯</b><b class='flag-5'>創</b><b class='flag-5'>D13x</b><b class='flag-5'>系列</b>芯片為手機無線投屏與導航提供核心支持

    探索KunLun Pi | 基于D13x系列開發板分享

    D133CBS做工相當不錯,驚艷我了,接口非常多,還有觸摸屏,同時還可以接DVP攝像頭、喇叭、TF卡等重要外設。開箱及搭建VSCode開發環境外觀檢查:PCB無彎曲變形所有接口無氧化或損壞;元器件無
    的頭像 發表于 11-17 18:05 ?1868次閱讀
    <b class='flag-5'>探索</b><b class='flag-5'>KunLun</b> <b class='flag-5'>Pi</b> | 基于<b class='flag-5'>匠</b><b class='flag-5'>芯</b><b class='flag-5'>創</b><b class='flag-5'>D13x</b><b class='flag-5'>系列</b><b class='flag-5'>開發板</b>分享