本文來源電子發(fā)燒友社區(qū),作者:xiaopeng, 帖子地址:https://bbs.elecfans.com/jishu_2308690_1_1.html
前言
開鴻智谷開發(fā)板NiobeU4板載了一塊spi接口的顯示屏,分辨率為130*135,用來顯示一些關(guān)鍵的信息也是非常不錯(cuò)的。本篇利用這塊屏結(jié)合多線程來顯示中英文,圖形等。
建立自己的工程
官方源碼的dmo文件夾下提供了很多的例程:
其中107是LCD的例程,002是多線程例程。這兩個(gè)例程是本次需要參考的例程。
為了方便后續(xù)功能開發(fā),需要建立一個(gè)自己的工程,步驟如下:
1、復(fù)制107_hdf_spi文件夾并重命名weather_project;
2、修改.application_config文件
3、修改Kconfig.liteos_m.applications文件
工程建立到這里就基本完成了,如果不修改源碼,應(yīng)該就可以選擇對(duì)應(yīng)的工程直接編譯下載了。
添加display任務(wù)
新建兩個(gè)c文件,一個(gè)是main.c,另一個(gè)是TaskDisplay.c
在main函數(shù)中調(diào)用display_task_create();
函數(shù)去創(chuàng)建display任務(wù)。
TaskDisplay.c文件中主要有兩個(gè)函數(shù)的實(shí)現(xiàn),一個(gè)是display任務(wù)的創(chuàng)建函數(shù),另一個(gè)是display任務(wù)主體
#include
#include "stdint.h"
#include "los_task.h"
#include "ohos_run.h"
#include "st7735.h"
#include "config.h"
UINT32 g_taskDisplayId;
extern void color_test(void);
extern void str_test(void);
extern void draw_test(void);
void TaskDisplay(void)
{
LcdInit();
while (1) {
{
str_test();
LOS_Msleep(3000);
draw_test();
LOS_Msleep(1000);
color_test();
LOS_Msleep(1000);
}
}
}
//create display task
void display_task_create(void)
{
UINT32 ret;
TSK_INIT_PARAM_S initParam = {0};
/* 鎖任務(wù)調(diào)度,防止新創(chuàng)建的任務(wù)比本任務(wù)高而發(fā)生調(diào)度 */
LOS_TaskLock();
printf("LOS_TaskLock() Success!rn");
initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskDisplay;
initParam.usTaskPrio = TASK_PRIOR_DISPLAY;
initParam.pcName = "Task Display";
initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;
//initParam.uwResved = LOS_TASK_ATTR_JOINABLE; /* detach 屬性 允許使用LOS_TaskJoin */
/* 創(chuàng)建高優(yōu)先級(jí)任務(wù),由于鎖任務(wù)調(diào)度,任務(wù)創(chuàng)建成功后不會(huì)馬上執(zhí)行 */
ret = LOS_TaskCreate(&g_taskDisplayId, &initParam);
if (ret != LOS_OK) {
LOS_TaskUnlock();
printf("TaskDisplay create Failed!rn");
return LOS_NOK;
}
printf("TaskDisplay create Success!rn");
/* 解鎖任務(wù)調(diào)度,此時(shí)會(huì)發(fā)生任務(wù)調(diào)度,執(zhí)行就緒隊(duì)列中最高優(yōu)先級(jí)任務(wù) */
LOS_TaskUnlock();
}
增加其它文件
任務(wù)創(chuàng)建好以后,對(duì)于LCD的中英文顯示和簡(jiǎn)單圖形的顯示,還需要實(shí)現(xiàn)一些相關(guān)函數(shù)。詳細(xì)過程不在這里做詳細(xì)說明。
最終實(shí)現(xiàn)完成后文件結(jié)構(gòu)如下:
config.h主要定義一些全局宏。
font.h用來定義中英文字體
gui.c用來實(shí)現(xiàn)具體的顯示方法
test.c用來實(shí)現(xiàn)一些測(cè)試用例
修改BUILD.gn文件
代碼編寫完成后,需要在BUILD.gn文件指定源文件和頭文件路徑
選擇weather_project工程進(jìn)行編譯
使用make menucofig進(jìn)入配置界面選擇我們自己的工程
編譯
使用hb build -f進(jìn)行編譯
編譯完成后如下
下載
使用esptool.py進(jìn)行下載
下載完成后如下
-
開鴻智谷
+關(guān)注
關(guān)注
2文章
144瀏覽量
1505 -
NiobeU4
+關(guān)注
關(guān)注
3文章
31瀏覽量
603
發(fā)布評(píng)論請(qǐng)先 登錄
基于RK3576處理器,米爾RK3576開發(fā)板免費(fèi)試用

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

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

性能強(qiáng)悍!合眾HZ-RK3568開發(fā)板試用體驗(yàn)

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


免費(fèi)丨米爾 STM32MP257開發(fā)板有獎(jiǎng)試用

有獎(jiǎng)丨米爾 瑞芯微YR3562開發(fā)板免費(fèi)試用

有獎(jiǎng)試用!!RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動(dòng)報(bào)名

有獎(jiǎng)丨米爾 全志T536開發(fā)板免費(fèi)試用

追加名額丨米爾瑞芯微RK3576開發(fā)板有獎(jiǎng)試用

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

有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動(dòng)開始報(bào)名

開鴻智谷用技術(shù)助力構(gòu)建鴻蒙世界的基石

評(píng)論