十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇內(nèi)容介紹了“LiteOS裸機驅(qū)動移植02LCD的方法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、做網(wǎng)站、成都做網(wǎng)站、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊及專業(yè)的網(wǎng)站設(shè)計師團(tuán)隊。
開發(fā)板使用的LCD屏幕為1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口與 MCU 之間通信。
LCD的底層是使用SPI驅(qū)動的,那么除了 STM32CubeMX 生成的spi.h
和spi.c
文件,還需要自己在此基礎(chǔ)上手寫LCD屏幕的驅(qū)動文件。
在復(fù)制文件的時候,按照上一篇文章中所說的,復(fù)制spi.h
到Inc 文件夾,復(fù)制spi.c
到 Src 文件夾,再復(fù)制自己編寫的驅(qū)動文件lcd.c
、lcd.h
以及字庫文件font.h
到 Hardware文件夾。
IoT-Studio中提供的默認(rèn)工程已經(jīng)復(fù)制好了這些文件,無需再次添加,如圖:
因為 LiteOS 的整個項目工程使用 make 構(gòu)建,所以復(fù)制驅(qū)動文件之后,需要添加驅(qū)動文件的路徑到 makefile 中,加入編譯。
project.mk
文件指明了工程中所有文件的路徑:
在該文件中:
C文件路徑
HARDWARE_SRC:對應(yīng)Hardware文件夾下的Src文件夾
USER_SRC:對應(yīng)Src文件夾
頭文件路徑
HARDWARE_INC:對應(yīng)Hardware文件夾下的Inc文件夾
USER_INC:對應(yīng)Inc文件夾
如下,LCD驅(qū)動的底層SPI接口代碼spi.c
路徑添加到USER_SRC中:
LCD驅(qū)動的底層SPI接口代碼spi.h
路徑添加到USER_INC中:
基于SPI驅(qū)動的LCD屏幕驅(qū)動文件lcd.c
添加到HARDWARE_SRC中:
基于SPI驅(qū)動的LCD屏幕驅(qū)動頭文件lcd.h
和字庫文件font.h
添加到 HARDWARE_INC 中:
至此,復(fù)制文件到LiteOS工程中,并將新復(fù)制的文件路徑添加到makefile中,加入工程編譯,就完成了驅(qū)動的移植。
在上一篇文章中詳細(xì)的講述了在LiteOS中初始化設(shè)備的兩種方式:
在系統(tǒng)啟動調(diào)度之前初始化:設(shè)備在系統(tǒng)中隨時可被任意任務(wù)使用
在任務(wù)中初始化:設(shè)備一般只在該任務(wù)中被使用
本文中移植的LCD設(shè)備,并不需要專門的任務(wù)去操作LCD,所以應(yīng)該在系統(tǒng)啟動之前就進(jìn)行初始化,然后每個任務(wù)都可以操作LCD設(shè)備進(jìn)行顯示。
在 main.c 中的 HardWare_Init()函數(shù)中添加 LCD 初始化代碼:
這里為了不影響后面的實驗,將工程中默認(rèn)的字符顯示代碼注釋掉:
接下來首先創(chuàng)建一個文件夾(如果已有,不用再次創(chuàng)建),用于存放本系列教程實驗的代碼:
在該文件夾中創(chuàng)建一個文件:
編寫代碼:
#include#include 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!"); //測試?yán)L制矩形 POINT_COLOR = BLUE; LCD_DrawRectangle(20, 100, 120, 200); //測試?yán)L制圓 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中,加入編譯:
最后在.sdkconfig
中配置開啟宏定義:
編譯,燒錄,即可看到LCD屏幕的顯示:
“LiteOS裸機驅(qū)動移植02LCD的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!