91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【開鴻智谷NiobeU4開發(fā)板免費試用體驗】移植LVGL

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-14 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2307453_1_1.html


前言

本開發(fā)板帶一個135x130的TFT屏幕,使用的控制器是ST7735,SPI接口,16位。前兩篇已經(jīng)進(jìn)行了屏幕的顯示測試,具備了移植GUI的條件,本篇我們移植LVGL

參考

https://lvgl.io/

準(zhǔn)備代碼

cd niobeu4_src/vendor/openvalley/niobeu4/demo/107_hdf_spi/

git clonehttps://github.com/lvgl/lvgl.git

移植概述

配置文件lv_conf.h

復(fù)制

lvgl/lv_conf_template.h

lvgl/lv_conf.h

將#if 0改為1,即直接#include “l(fā)v_conf.h”

將lv_conf.h添加到工程頭文件包含路徑。

即修改

vendor/openvalley/niobeu4/demo/107_hdf_spi/BUILD.gn

include_dirs = [

下添加一行"lvgl/",

底層驅(qū)動模板

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/examples/porting

下有對應(yīng)的模板文件,分別是顯示,文件系統(tǒng)和輸入設(shè)備的驅(qū)動模板。

lv_port_disp_template.c/h

lv_port_fs_template.c/h

lv_port_indev_template.c/h

暫時只移植顯示,所以復(fù)制lv_port_disp_template.c/h

到vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl下改名字為

lv_port_disp.c/h

將.c和.h里面的#if 0改為1

.c中#include "lv_port_disp_template.h"改為#include "lv_port_disp.h"

HAL層模板

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/src/hal

我們直接使用不修改

lv_hal_disp.c/h

lv_hal_indev.c/h

lv_hal_tick.c/h

lv_hal.h

添加文件

見工程配置,在gn文件中添加源碼。

需要移植的代碼

移植比較簡單,直接使用底層驅(qū)動模板根據(jù)實際實現(xiàn)修改lv_port_disp.c,并配置lv_conf.h即可。

頭文件包含模式

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_port_disp.h中

#define LV_LVGL_H_INCLUDE_SIMPLE 1

這樣需要將lv_conf.h所在路徑配置為工程頭文件包含路徑。

代碼中直接#include "lvgl.h"

否則是#include "../../lvgl.h"

分辨率配置

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_port_disp.h中

#define MY_DISP_HOR_RES 135

#define MY_DISP_VER_RES 130

初始化

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_port_disp.c中

實現(xiàn)disp_init

即調(diào)用自己的初始化函數(shù)LcdInit

緩沖區(qū)

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_port_disp.c中

lv_port_disp_init

注釋掉/* Example for 2) */

/* Example for 3) also set disp_drv.full_refresh = 1 below*/對應(yīng)的代碼

使用/* Example for 1) */

lv_port_disp_init

改函數(shù)調(diào)用disp_init

調(diào)用LcdInit實現(xiàn)初始化

刷新顯示

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_port_disp.c中

disp_flush

/*put_px(x, y,color_p)/改為

lcd_draw_point(x,y,color_p->full);

并調(diào)用LcdPush();

/*Flush the content of the internal buffer the specific area on the display

*You can use DMA or any hardware acceleration to do this operation in the background but

'lv_disp_flush_ready()' has to be called when finished./

static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)

{

if(disp_flush_enabled) {

    /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/



    int32_t x;

    int32_t y;

    for(y = area->y1; y <= area->y2; y++) {

        for(x = area->x1; x <= area->x2; x++) {

            /*Put a pixel to the display. For example:*/

            /*put_px(x, y, *color_p)*/

            lcd_draw_point(x,y,color_p->full);

            color_p++;

        }

    }

    LcdPush();

}



/*IMPORTANT!!!

 *Inform the graphics library that you are ready with the flushing*/

lv_disp_flush_ready(disp_drv);

}

顏色深度

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_conf.h中

#define LV_COLOR_DEPTH 16

typedef LV_CONCAT3(lv_color, LV_COLOR_DEPTH, _t) lv_color_t;

則lv_color_t類型為lv_color_16_t

堆大小配置

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_conf.h中

#define LV_MEM_SIZE (10U * 1024U) /[bytes]/

按需提供堆大小,過大可能編譯不過,過小可能影響創(chuàng)建對象。

時間滴答

如果LV_TICK_CUSTOM為1則需要用戶提供相關(guān)接口

LV_TICK_CUSTOM_SYS_TIME_EXPR用于獲取當(dāng)前毫秒值

和頭文件LV_TICK_CUSTOM_INCLUDE

在lv_conf.h中指定

否則使用lvgl/src/hal/lv_hal_tick.c的實現(xiàn)

每隔x毫秒調(diào)用lv_tick_inc(x),使用內(nèi)部計數(shù)器定時。

周期調(diào)用lv_tick_inc更新時間滴答,比如專門在某個定時線程中

while(1)

{

LOS_Msleep(5);   /*Sleep for 5 millisecond*/

    lv_tick_inc(5);

lv_timer_handler();

}

日志

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_conf.h中

#define LV_USE_LOG 0

改為

#define LV_USE_LOG 1使能日志

#define LV_LOG_LEVEL LV_LOG_LEVEL_TRACE設(shè)置日志,等級

LV_LOG_LEVEL_TRACE表示所有信息都打印

如果#define LV_LOG_PRINTF 0

則需要調(diào)用設(shè)置lv_log_register_print_cb()打印函數(shù)

否則使用printf,我們這里實現(xiàn)了printf所以設(shè)置為1

#define LV_LOG_USE_TIMESTAMP 1

使能打印時間

其他的模塊打印使能

#define LV_LOG_TRACE_MEM        1

#define LV_LOG_TRACE_TIMER      1

#define LV_LOG_TRACE_INDEV      1

#define LV_LOG_TRACE_DISP_REFR  1

#define LV_LOG_TRACE_EVENT      1

#define LV_LOG_TRACE_OBJ_CREATE 1

#define LV_LOG_TRACE_LAYOUT     1

#define LV_LOG_TRACE_ANIM       1

字體配置

vendor/openvalley/niobeu4/demo/107_hdf_spi/lvgl/lv_conf.h

中按需使能對應(yīng)的字體,如果有對應(yīng)編譯錯誤信息根據(jù)提示使能

#define LV_FONT_MONTSERRAT_12 1

#define LV_FONT_MONTSERRAT_14 1

#define LV_FONT_MONTSERRAT_16 1

工程配置

vendor/openvalley/niobeu4/demo/107_hdf_spi/BUILD.gn中添加源碼和頭文件包含路徑。

kernel_module(module_name){

sources = [

    "spi_example.c",

    "st7735s.c",

    "lvgl/src/core/lv_disp.c",

    "lvgl/src/core/lv_event.c",

    "lvgl/src/core/lv_group.c",

    "lvgl/src/core/lv_indev_scroll.c",

    "lvgl/src/core/lv_indev.c",

    "lvgl/src/core/lv_obj_class.c",

    "lvgl/src/core/lv_obj_draw.c",

    "lvgl/src/core/lv_obj_pos.c",

    "lvgl/src/core/lv_obj_scroll.c",

    "lvgl/src/core/lv_obj_style_gen.c",

    "lvgl/src/core/lv_obj_style.c",

    "lvgl/src/core/lv_obj_tree.c",

    "lvgl/src/core/lv_obj.c",

    "lvgl/src/core/lv_refr.c",

    "lvgl/src/core/lv_theme.c",



    "lvgl/src/draw/sw/lv_draw_sw_arc.c",

    "lvgl/src/draw/sw/lv_draw_sw_blend.c", 

    "lvgl/src/draw/sw/lv_draw_sw_dither.c",   

    "lvgl/src/draw/sw/lv_draw_sw_gradient.c",

    "lvgl/src/draw/sw/lv_draw_sw_img.c",

    "lvgl/src/draw/sw/lv_draw_sw_layer.c",

    "lvgl/src/draw/sw/lv_draw_sw_letter.c",

    "lvgl/src/draw/sw/lv_draw_sw_line.c",

    "lvgl/src/draw/sw/lv_draw_sw_polygon.c",

    "lvgl/src/draw/sw/lv_draw_sw_rect.c",

    "lvgl/src/draw/sw/lv_draw_sw_transform.c",

    "lvgl/src/draw/sw/lv_draw_sw.c",

    "lvgl/src/draw/lv_draw_arc.c",

    "lvgl/src/draw/lv_draw_img.c",   

    "lvgl/src/draw/lv_draw_label.c",  

    "lvgl/src/draw/lv_draw_layer.c",

    "lvgl/src/draw/lv_draw_line.c",

    "lvgl/src/draw/lv_draw_mask.c",

    "lvgl/src/draw/lv_draw_rect.c",

    "lvgl/src/draw/lv_draw_transform.c",

    "lvgl/src/draw/lv_draw_triangle.c",

    "lvgl/src/draw/lv_draw.c",

    "lvgl/src/draw/lv_img_buf.c",

    "lvgl/src/draw/lv_img_cache.c",

    "lvgl/src/draw/lv_img_decoder.c",



    "lvgl/src/font/lv_font_fmt_txt.c",

    "lvgl/src/font/lv_font.c",

    "lvgl/src/font/lv_font_montserrat_12.c",

    "lvgl/src/font/lv_font_montserrat_14.c",

    "lvgl/src/font/lv_font_montserrat_16.c",



    "lvgl/src/hal/lv_hal_disp.c",

    "lvgl/src/hal/lv_hal_indev.c",

    "lvgl/src/hal/lv_hal_tick.c",



    "lvgl/src/layouts/flex/lv_flex.c",

    "lvgl/src/layouts/grid/lv_grid.c",



    "lvgl/src/libs/bmp/lv_bmp.c",

    "lvgl/src/libs/ffmpeg/lv_ffmpeg.c",

    "lvgl/src/libs/freetype/lv_freetype.c",

    "lvgl/src/libs/fsdrv/lv_fs_fatfs.c",

    "lvgl/src/libs/fsdrv/lv_fs_posix.c",

    "lvgl/src/libs/fsdrv/lv_fs_stdio.c",

    "lvgl/src/libs/fsdrv/lv_fs_win32.c",

    "lvgl/src/libs/gif/gifdec.c",

    "lvgl/src/libs/gif/lv_gif.c",

    "lvgl/src/libs/png/lodepng.c",

    "lvgl/src/libs/png/lv_png.c",

    "lvgl/src/libs/qrcode/lv_qrcode.c",

    "lvgl/src/libs/qrcode/qrcodegen.c",

    "lvgl/src/libs/rlottie/lv_rlottie.c",

    "lvgl/src/libs/sjpg/lv_sjpg.c",

    "lvgl/src/libs/sjpg/tjpgd.c",



    "lvgl/src/misc/lv_anim_timeline.c",

    "lvgl/src/misc/lv_anim.c",

    "lvgl/src/misc/lv_area.c",

    "lvgl/src/misc/lv_async.c",

    "lvgl/src/misc/lv_bidi.c",

    "lvgl/src/misc/lv_color.c",

    "lvgl/src/misc/lv_fs.c",

    "lvgl/src/misc/lv_gc.c",

    "lvgl/src/misc/lv_ll.c",

    "lvgl/src/misc/lv_log.c",

    "lvgl/src/misc/lv_lru.c",

    "lvgl/src/misc/lv_malloc_builtin.c",

    "lvgl/src/misc/lv_math.c",

    "lvgl/src/misc/lv_mem.c",

    "lvgl/src/misc/lv_memcpy_builtin.c",

    "lvgl/src/misc/lv_printf.c",

    "lvgl/src/misc/lv_style_gen.c",

    "lvgl/src/misc/lv_style.c",

    "lvgl/src/misc/lv_templ.c",

    "lvgl/src/misc/lv_timer.c",

    "lvgl/src/misc/lv_tlsf.c",

    "lvgl/src/misc/lv_txt_ap.c",

    "lvgl/src/misc/lv_txt.c",

    "lvgl/src/misc/lv_utils.c",



    "lvgl/src/others/file_explorer/lv_file_explorer.c",

    "lvgl/src/others/fragment/lv_fragment_manager.c",

    "lvgl/src/others/fragment/lv_fragment.c",

    "lvgl/src/others/gridnav/lv_gridnav.c",

    "lvgl/src/others/ime/lv_ime_pinyin.c",

    "lvgl/src/others/imgfont/lv_imgfont.c",

    "lvgl/src/others/monkey/lv_monkey.c",

    "lvgl/src/others/msg/lv_msg.c",

    "lvgl/src/others/snapshot/lv_snapshot.c",



    "lvgl/src/themes/basic/lv_theme_basic.c",

    "lvgl/src/themes/default/lv_theme_default.c",

    "lvgl/src/themes/mono/lv_theme_mono.c",



    "lvgl/src/widgets/windows/lv_win.c",

    "lvgl/src/widgets/animimg/lv_animimg.c",

    "lvgl/src/widgets/arc/lv_arc.c",

    "lvgl/src/widgets/bar/lv_bar.c",

    "lvgl/src/widgets/btn/lv_btn.c",

    "lvgl/src/widgets/btnmatrix/lv_btnmatrix.c",

    "lvgl/src/widgets/calendar/lv_calendar_header_arrow.c",

    "lvgl/src/widgets/calendar/lv_calendar_header_dropdown.c",

    "lvgl/src/widgets/calendar/lv_calendar.c",

    "lvgl/src/widgets/canvas/lv_canvas.c",

    "lvgl/src/widgets/chart/lv_chart.c",

    "lvgl/src/widgets/checkbox/lv_checkbox.c",

    "lvgl/src/widgets/colorwheel/lv_colorwheel.c",

    "lvgl/src/widgets/dropdown/lv_dropdown.c",

    "lvgl/src/widgets/img/lv_img.c",

    "lvgl/src/widgets/imgbtn/lv_imgbtn.c",

    "lvgl/src/widgets/keyboard/lv_keyboard.c",

    "lvgl/src/widgets/label/lv_label.c",

    "lvgl/src/widgets/led/lv_led.c",

    "lvgl/src/widgets/line/lv_line.c",

    "lvgl/src/widgets/list/lv_list.c",

    "lvgl/src/widgets/menu/lv_menu.c",

    "lvgl/src/widgets/meter/lv_meter.c",

    "lvgl/src/widgets/msgbox/lv_msgbox.c",

    "lvgl/src/widgets/objx_templ/lv_objx_templ.c",

    "lvgl/src/widgets/roller/lv_roller.c",

    "lvgl/src/widgets/slider/lv_slider.c",

    "lvgl/src/widgets/span/lv_span.c",

    "lvgl/src/widgets/spinbox/lv_spinbox.c",

    "lvgl/src/widgets/spinner/lv_spinner.c",    

    "lvgl/src/widgets/switch/lv_switch.c",           

    "lvgl/src/widgets/table/lv_table.c",  

    "lvgl/src/widgets/tabview/lv_tabview.c",

    "lvgl/src/widgets/textarea/lv_textarea.c",

    "lvgl/src/widgets/tileview/lv_tileview.c",



    "lvgl/lv_port_disp.c",



    #"lvgl/demos/music/lv_demo_music_list.c",

    #"lvgl/demos/music/lv_demo_music_main.c",

    #"lvgl/demos/music/lv_demo_music.c",

    "lvgl/demos/stress/lv_demo_stress.c",

]

include_dirs = [

    "http://drivers/hdf_core/framework/include/platform/",

    "http://drivers/hdf_core/framework/include/utils/",

    "http://drivers/hdf_core/framework/support/platform/include/spi",

    "http://drivers/hdf_core/adapter/khdf/liteos_m/osal/include/",

    "http://drivers/hdf_core/framework/include/core/",

    "http://drivers/hdf_core/framework/include/osal/",

    "lvgl/",

    "lvgl/src",

    ".",

]

測試代碼

vendor/openvalley/niobeu4/demo/107_hdf_spi/spi_example.c中

增加

#include "lvgl.h"

#include "lv_port_disp.h"

任務(wù)中

注意初始化

lv_init();在

lv_port_disp_init();前

再創(chuàng)建lc對象

再周期執(zhí)行

lv_task_handler();

另專門開任務(wù)周期調(diào)用

lv_tick_inc(5);

lv_timer_handler();
提供滴答和定時器處理。

static void btn_event_cb(lv_event_t * e)
{
    lv_event_code_t code = lv_event_get_code(e);
    lv_obj_t * btn = lv_event_get_target(e);
    if(code == LV_EVENT_CLICKED) {
        static uint8_t cnt = 0;
        cnt++;

        /*Get the first child of the button which is the label and change its text*/
        lv_obj_t * label = lv_obj_get_child(btn, 0);
        lv_label_set_text_fmt(label, "Button: %d", cnt);
    }
}

void lv_log_print(const char * buf)
{
    printf("%srn",buf);
}

/**
 * Create a button with a label and react on click event.
 */
void lv_example_get_started_1(void)
{
    lv_obj_t * btn = lv_btn_create(lv_scr_act());     /*Add a button the current screen*/
    lv_obj_set_pos(btn, 10, 10);                            /*Set its position*/
    lv_obj_set_size(btn, 60, 25);                          /*Set its size*/
    lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_ALL, NULL);           /*Assign a callback to the button*/

    lv_obj_t * label = lv_label_create(btn);          /*Add a label to the button*/
    lv_label_set_text(label, "Button");                     /*Set the labels text*/
    lv_obj_center(label);
}

void lv_tick_handle(UINT32 arg)
{
    while(1)
    {
        LOS_Msleep(5);   /*Sleep for 5 millisecond*/
        lv_tick_inc(5);
        lv_timer_handler();
    }
}

void StartHdfSPITest(void)
{
    UINT32 g_lv_time_task;
    TSK_INIT_PARAM_S task = { 0 };
    task.pfnTaskEntry = (TSK_ENTRY_FUNC)lv_tick_handle;
    task.pcName = "lv_time_task";
    task.uwStackSize = 0x1000;
    task.usTaskPrio = 25 - 1;

    lv_init();
    lv_port_disp_init();
    lv_log_register_print_cb(lv_log_print);
    LOS_TaskCreate(&g_lv_time_task, &task);

    //lv_demo_stress();
    lv_example_get_started_1();
    while(1)
    {
        LOS_Msleep(1);  
        lv_task_handler();
    }
}

執(zhí)行效果

創(chuàng)建了一個按鈕,由于輸入驅(qū)動還沒移植所以不能演示按鈕事件。
image.png

總結(jié)

  1. 只移植了顯示驅(qū)動,后面可以移植輸入驅(qū)動,和文件系統(tǒng)接口,以實現(xiàn)完整的功能。
  2. 移植比較簡單,按照模板修改即可,之前已經(jīng)測試好顯示操作,所以移植很快。
  3. 后面再基于此進(jìn)行具體項目開發(fā),比如基于ADC可以實現(xiàn)簡易的示波器
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開鴻智谷
    +關(guān)注

    關(guān)注

    2

    文章

    145

    瀏覽量

    1562
  • NiobeU4
    +關(guān)注

    關(guān)注

    3

    文章

    31

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    開發(fā)板深度體驗:從開源鴻蒙開發(fā)到AI場景實踐

    開發(fā)板KaihongBoard-3588S-SBCKaihongBoard-3576-SBC體驗開源鴻蒙能力學(xué)習(xí)開源鴻蒙開發(fā)●●●搭載KaihongOS
    的頭像 發(fā)表于 07-03 17:03 ?247次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b><b class='flag-5'>開發(fā)板</b>深度體驗:從開源鴻蒙<b class='flag-5'>開發(fā)</b>到AI場景實踐

    【潤HH-SCDAYU800A開發(fā)板試用體驗】潤HH-SCDAYU800A開發(fā)板(二)

    (三)潤HH-SCDAYU800A開發(fā)板固件燒錄 注意:本燒錄方法僅可用于Windows10及之前版本。 1.安裝USB驅(qū)動 1.1下載潤
    發(fā)表于 07-02 09:30

    有獎丨米爾 瑞芯微RK3506開發(fā)板免費試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3506應(yīng)用處理器的MYD-YR3506開發(fā)板免費試用名額來啦~~米爾提供了3塊價值299元的MYD-YR3506開發(fā)板發(fā)起
    的頭像 發(fā)表于 06-19 08:04 ?317次閱讀
    有獎丨米爾 瑞芯微RK3506<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>

    有獎丨米爾 瑞芯微RK3562開發(fā)板免費試用新增名額!

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應(yīng)用處理器的MYD-YR3562開發(fā)板免費試用名額增加
    的頭像 發(fā)表于 06-13 08:04 ?351次閱讀
    有獎丨米爾 瑞芯微RK3562<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>新增名額!

    基于RK3576處理器,米爾RK3576開發(fā)板免費試用

    年7月19日 ? 評測數(shù)量: 3塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤HH-SCDAYU800A開發(fā)板免費試用 RIS
    的頭像 發(fā)表于 06-09 15:00 ?464次閱讀
    基于RK3576處理器,米爾RK3576<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>

    搭載OpenHarmony操作系統(tǒng),視美泰SC-3568HA開發(fā)板免費試用

    : 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤HH-SCDAYU800A開發(fā)板免費試用 RISC-V
    的頭像 發(fā)表于 06-05 16:45 ?492次閱讀
    搭載OpenHarmony操作系統(tǒng),視美泰SC-3568HA<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>

    基于RK處理器,創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗

    數(shù)量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤HH-SCDAYU800A開發(fā)板免費試用 RISC-V
    的頭像 發(fā)表于 06-05 16:31 ?410次閱讀
    基于RK處理器,創(chuàng)龍TL3562-MiniEVM<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗

    性能強悍!合眾HZ-RK3568開發(fā)板試用體驗

    月19日 ? 評測數(shù)量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤HH-SCDAYU800A開發(fā)板免費試用 RISC
    的頭像 發(fā)表于 06-05 16:30 ?491次閱讀
    性能強悍!合眾HZ-RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗

    有獎丨米爾 NXP i.MX91開發(fā)板免費試用來啦

    米爾與NXP合作發(fā)布的新品基于NXPi.MX91應(yīng)用處理器的MYD-LMX91開發(fā)板免費試用名額來啦~~米爾提供了3套價值588元的MYD-LMX91開發(fā)板發(fā)起
    的頭像 發(fā)表于 06-05 08:02 ?626次閱讀
    有獎丨米爾 NXP i.MX91<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>來啦

    【評測試用】合眾HZ-T536開發(fā)板免費試用體驗

    【評測試用】合眾HZ-T536開發(fā)板免費試用體驗
    的頭像 發(fā)表于 05-27 08:05 ?205次閱讀
    【評測<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>體驗

    免費丨米爾 STM32MP257開發(fā)板有獎試用

    米爾與ST合作發(fā)布的新品基于STM32MP257應(yīng)用處理器的MYD-LD25X開發(fā)板免費試用活動來啦~~米爾提供了2塊價值488元的MYD-LD25X開發(fā)板發(fā)起
    的頭像 發(fā)表于 03-20 08:05 ?470次閱讀
    <b class='flag-5'>免費</b>丨米爾 STM32MP257<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    有獎試用!!RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動報名

    RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動
    的頭像 發(fā)表于 03-13 12:10 ?493次閱讀
    有獎<b class='flag-5'>試用</b>!!RA-Eco-RA<b class='flag-5'>4</b>M2-100PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動報名

    RK3506開發(fā)板2秒啟動LVGL顯示方案

    占用很少資源的前提下,實現(xiàn)絲滑的動畫效果和平滑滾動的高級圖形,具有輕量化、跨平臺可用性、易于移植、操作友好以及免費使用等諸多優(yōu)勢。 OK3506J-S開發(fā)板移植了最新9.2版本的
    的頭像 發(fā)表于 02-25 16:53 ?565次閱讀
    RK3506<b class='flag-5'>開發(fā)板</b>2秒啟動<b class='flag-5'>LVGL</b>顯示方案

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux
    的頭像 發(fā)表于 11-16 01:02 ?903次閱讀
    【RA8D1<b class='flag-5'>試用</b>活動】RA8D1B-CPKCOR<b class='flag-5'>開發(fā)板</b><b class='flag-5'>移植</b>linux

    有獎丨米爾 瑞芯微RK3576開發(fā)板免費試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576開發(fā)板發(fā)起
    的頭像 發(fā)表于 11-12 01:00 ?792次閱讀
    有獎丨米爾 瑞芯微RK3576<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>
    主站蜘蛛池模板: 成人黄色一级片 | 亚洲国产丝袜精品一区杨幂 | 国产精欧美一区二区三区 | 伊人最新网址 | 欧美成人午夜精品免费福利 | 97爱sese| 色综合九九 | 欧美性狂猛bbbbbbxxxx | 人人做人人爽国产视 | 成人免费无毒在线观看网站 | 超黄视频网站 | 黄色网页在线播放 | www.激情五月 | 天天干在线观看 | 欧美另类图片亚洲偷 | 乱小说录目伦800 | 成人网男女啪啪免费网站 | 日本四虎影院 | 免费一级毛毛片 | 在线免费观看一区二区三区 | 在线观看视频一区 | 拍拍拍无挡视频免费全程1000 | 曰本a| 毛片三级在线观看 | 国产一区二区三区在线观看影院 | 又黄又粗暴的120秒免费gif视频 | 日本aaaa| 黄色网网址| 四虎永久在线精品免费观看地址 | 99久久无色码中文字幕 | 午夜黄大色黄大片美女图片 | 激情五月激情综合 | 美女视频网站免费播放视 | 国模大尺度人体一区 | 一区二区三区无码高清视频 | 久青草免费视频手机在线观看 | 国产亚洲一区二区三区啪 | 日本三级视频在线 | 性欧美17一18sex性高清 | 天天爱夜夜爽 | 精品黄色录像 |