LiteOS裸機驅(qū)動移植02LCD的方法是什么

本篇內(nèi)容介紹了“LiteOS裸機驅(qū)動移植02LCD的方法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設計、做網(wǎng)站、成都做網(wǎng)站、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設計師團隊。

1. LCD裸機驅(qū)動

開發(fā)板使用的LCD屏幕為1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口與 MCU 之間通信。

2. 移植LCD裸機驅(qū)動到LiteOS

復制裸機驅(qū)動文件到LiteOS工程

LCD的底層是使用SPI驅(qū)動的,那么除了 STM32CubeMX 生成的spi.hspi.c文件,還需要自己在此基礎上手寫LCD屏幕的驅(qū)動文件。

在復制文件的時候,按照上一篇文章中所說的,復制spi.h到Inc 文件夾,復制spi.c到 Src 文件夾,再復制自己編寫的驅(qū)動文件lcd.c、lcd.h以及字庫文件font.h到 Hardware文件夾。

IoT-Studio中提供的默認工程已經(jīng)復制好了這些文件,無需再次添加,如圖:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

添加驅(qū)動文件路徑

因為 LiteOS 的整個項目工程使用 make 構(gòu)建,所以復制驅(qū)動文件之后,需要添加驅(qū)動文件的路徑到 makefile 中,加入編譯。

project.mk文件指明了工程中所有文件的路徑:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

在該文件中:

  • C文件路徑

    • HARDWARE_SRC:對應Hardware文件夾下的Src文件夾

    • USER_SRC:對應Src文件夾

  • 頭文件路徑

    • HARDWARE_INC:對應Hardware文件夾下的Inc文件夾

    • USER_INC:對應Inc文件夾

如下,LCD驅(qū)動的底層SPI接口代碼spi.c路徑添加到USER_SRC中:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

LCD驅(qū)動的底層SPI接口代碼spi.h路徑添加到USER_INC中:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

基于SPI驅(qū)動的LCD屏幕驅(qū)動文件lcd.c添加到HARDWARE_SRC中:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

基于SPI驅(qū)動的LCD屏幕驅(qū)動頭文件lcd.h和字庫文件font.h添加到 HARDWARE_INC 中:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

至此,復制文件到LiteOS工程中,并將新復制的文件路徑添加到makefile中,加入工程編譯,就完成了驅(qū)動的移植。

3. LCD裸機驅(qū)動的使用

初始化LCD

在上一篇文章中詳細的講述了在LiteOS中初始化設備的兩種方式:

  • 在系統(tǒng)啟動調(diào)度之前初始化:設備在系統(tǒng)中隨時可被任意任務使用

  • 在任務中初始化:設備一般只在該任務中被使用

本文中移植的LCD設備,并不需要專門的任務去操作LCD,所以應該在系統(tǒng)啟動之前就進行初始化,然后每個任務都可以操作LCD設備進行顯示。

在 main.c 中的 HardWare_Init()函數(shù)中添加 LCD 初始化代碼:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

這里為了不影響后面的實驗,將工程中默認的字符顯示代碼注釋掉:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

操作LCD

接下來首先創(chuàng)建一個文件夾(如果已有,不用再次創(chuàng)建),用于存放本系列教程實驗的代碼:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

LiteOS裸機驅(qū)動移植02LCD的方法是什么

在該文件夾中創(chuàng)建一個文件:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

編寫代碼:

#include <osal.h>
#include <lcd.h>

static int lcd_demo_entry()
{
	//測試顯示字符
	POINT_COLOR = BLUE;			
	LCD_ShowString(0, 0, 240, 32, 32, "Welcome To IoT");
	
	POINT_COLOR = RED;	
	LCD_ShowString(0, 32, 240, 24, 24, "I am BearPi");

	POINT_COLOR = BLACK;	
	LCD_ShowString(0, 56, 240, 16, 16, "LCD Test ......");

	POINT_COLOR = GREEN;
	LCD_ShowString(0, 72, 240, 12, 12, "Powerd by Huawei LiteOS!");

	//測試繪制矩形
	POINT_COLOR = BLUE;
	LCD_DrawRectangle(20, 100, 120, 200);

	//測試繪制圓
	POINT_COLOR = RED;
	LCD_Draw_Circle(180, 150, 50);

	return 0;
}

int standard_app_demo_main()
{
    osal_task_create("lcd_demo",lcd_demo_entry,NULL,0x400,NULL,2);
    return 0;
}

然后按照之前的方法,在 user_demo.mk 中將lcd_driver_demo.c文件添加到makefile中,加入編譯:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

最后在.sdkconfig中配置開啟宏定義:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

編譯,燒錄,即可看到LCD屏幕的顯示:

LiteOS裸機驅(qū)動移植02LCD的方法是什么

“LiteOS裸機驅(qū)動移植02LCD的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當前題目:LiteOS裸機驅(qū)動移植02LCD的方法是什么
當前路徑:http://muchs.cn/article6/jepeog.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、外貿(mào)網(wǎng)站建設、App設計、服務器托管網(wǎng)站營銷定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設