當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]  首先在開(kāi)始這個(gè)說(shuō)明之前,要簡(jiǎn)要說(shuō)明下具體的環(huán)境:  編譯工具:MDK4.20  開(kāi)發(fā)板:安富萊v2版開(kāi)發(fā)板  調(diào)試器:JLink v8盜版移植篇  相信大家有移植經(jīng)驗(yàn)的都知道,移植確實(shí)是一件非常墨跡的事情,怎么說(shuō)呢,代碼都

  首先在開(kāi)始這個(gè)說(shuō)明之前,要簡(jiǎn)要說(shuō)明下具體的環(huán)境:

  編譯工具:MDK4.20

  開(kāi)發(fā)板:安富萊v2版開(kāi)發(fā)板

  調(diào)試器:JLink v8盜版


移植篇

  相信大家有移植經(jīng)驗(yàn)的都知道,移植確實(shí)是一件非常墨跡的事情,怎么說(shuō)呢,代碼都是別人的,風(fēng)格也是別人的,文件結(jié)構(gòu),定義之類(lèi)都是別人的,看別人的東西是種進(jìn)步,但是,也是一個(gè)痛苦的過(guò)程,因?yàn)橛袝r(shí)候資料確實(shí)很少,而且有時(shí)候還是E文的,專(zhuān)業(yè)名詞一大堆,我們根本沒(méi)有辦法想象工作量是多么的巨大.

  不過(guò)事情都是這樣,你不懂他的時(shí)候他就像是巨山,但是一旦你理解他的時(shí)候,你才會(huì)感覺(jué)到原來(lái)他是那么的簡(jiǎn)單(從我的經(jīng)驗(yàn)上來(lái)看,至少應(yīng)該是這樣的).

  好吧,閑話少說(shuō),我們就來(lái)開(kāi)始我們的移植之旅把.

  首先,我們需要準(zhǔn)備的東西有uCGUI3.90,這個(gè)版本是大家現(xiàn)在用的比較多的,效率也比較高,別人都是這么評(píng)論的,至于其他版本的,我沒(méi)有接觸很多,所以不能過(guò)多評(píng)論.

  uCGUI有三個(gè)文件夾,一個(gè)是tool,這個(gè)文件夾是用來(lái)使用一些uCgui的上位機(jī)程序,基本都是字體和模板查看之類(lèi)的.在sample文件夾下面是已經(jīng)別人幫你寫(xiě)好了很多有用的東西,像跟操作系統(tǒng)有關(guān)的GUI_X或者一些模板(后面我們會(huì)用到的自己定義的Demo),或者是gui配置.后面再一一詳細(xì)敘說(shuō)這個(gè)文件夾的功能.在Start文件夾里面,這是我們最主要的文件夾.里面就包含了uCGUI的源代碼,uCGUI的作者把源代碼放進(jìn)vc里面進(jìn)行編譯了(當(dāng)然,這是用標(biāo)準(zhǔn)C語(yǔ)言寫(xiě)的程序,所以我們可以放在任何C語(yǔ)言平臺(tái)下編譯而不會(huì)擔(dān)心兼容性問(wèn)題,這個(gè)uCGUI在這方面做的算是完美了),所以,我們可以在vc平臺(tái)下寫(xiě)界面,然后再把代碼拷進(jìn)我們的下位機(jī)編譯器進(jìn)行編譯,這樣子效率就會(huì)非常高了.(像51那時(shí)候?qū)懡缑婢褪钳偪竦囊淮我淮蔚臒?真是糾結(jié)..).


然后這里放的就是uCGUI的源代碼了,在GUI文件夾下面.

  這則是每個(gè)文件夾的功能(參考uCGUI中文手冊(cè),ucgui.com翻譯).

  大概看一下就可以了,這個(gè)跟我們移植的關(guān)系不大,關(guān)鍵點(diǎn)是帶*的可以不包含進(jìn)去(待會(huì)配置會(huì)講到.).然后其他的都要包含進(jìn)去.

接著我們要把我們的文件包含進(jìn)我們已經(jīng)搭建好的工程,這里說(shuō)明下我們的工程要求.

  一般來(lái)說(shuō),我們要畫(huà)一個(gè)圖形,最基本的就是從點(diǎn)開(kāi)始,從點(diǎn)到線,從點(diǎn)到面...,所以在已經(jīng)建好的工程里面你要能點(diǎn)亮你的屏幕,能點(diǎn)出最基本的點(diǎn),能填充出最基本矩陣(這是uCGUI最包含的函數(shù)),反正我移植的時(shí)候涉及到的包括三個(gè)函數(shù),LCD_Init();LCD_Draw_Point(x,y,color),LCD_Fillcircuit(x1,x2,y1,y2).這三個(gè)函數(shù)是必須的,后面也會(huì)說(shuō)明如何把這三個(gè)函數(shù)進(jìn)行填充.

  當(dāng)我們把文件復(fù)制進(jìn)去的時(shí)候,再加上我們一開(kāi)始已經(jīng)創(chuàng)建好的工程的時(shí)候,文件結(jié)構(gòu)差不多就是這個(gè)樣子了,截圖如下

  user包括,main函數(shù)就是我們初始化和函數(shù)調(diào)用,繪圖用的文件,另外那幾個(gè)文件相信大家都明白了把,tft_lcd.c就是你在,沒(méi)有移植uCGUI的情況下,純液晶屏驅(qū)動(dòng),這里建議把液晶屏的API和最底層驅(qū)動(dòng)(API就是畫(huà)圓啊,畫(huà)橢圓啊,清除屏幕之類(lèi)的,底層驅(qū)動(dòng)就是驅(qū)動(dòng)液晶屏的管腳運(yùn)作,fsmc初始化,時(shí)鐘配置之類(lèi)的),不過(guò)我這里也是集成在一起了,比較懶,大家別學(xué).

  其他文件夾我都包含進(jìn)去了,在沒(méi)包含進(jìn)去的時(shí)候,編譯是可以通過(guò)的,但是,那么多文件包含進(jìn)去,有些配置還是沒(méi)有設(shè)定好的.所以會(huì)有錯(cuò)誤,蠻編譯一下.沒(méi)事的.

  這里我們需要修改的文件只有這幾個(gè):,,,這是ucgui開(kāi)放給我們的用戶(hù)層的文件,在ucgui中,lcdDrive文件夾要自己加進(jìn)去,GUI_X.c也是,另外三個(gè)文件都是包含了,在GUIConf.h中


1#ifndefGUICONF_H2#defineGUICONF_H34#defineGUI_OS(0) //這里指的是對(duì)操作系統(tǒng)的支持,因?yàn)槲覀冞@里只有單純的移植uCGUI,5                    //所以,要把這個(gè)關(guān)閉,不然后面會(huì)有很多東西編譯進(jìn)去6                     //不然到時(shí)候編譯的時(shí)候會(huì)發(fā)生很多你無(wú)法修改的錯(cuò)誤7#defineGUI_SUPPORT_TOUCH(0)  //這里則是對(duì)觸摸屏的支持,觸摸屏我是能做,但是沒(méi)有用,8//所以省去麻煩,把觸摸屏關(guān)掉,相信移植好之后,要支持觸摸屏大家都會(huì)有門(mén)路了9#defineGUI_SUPPORT_UNICODE(1) //UNICODE編碼支持,如果大家只是單純的想用英文顯示,而不移植中文字庫(kù)進(jìn)去,10//這個(gè)是可以關(guān)掉的,因?yàn)閁NICODE是向下支持的,所以開(kāi)不開(kāi)無(wú)所謂11                      //反正都是能夠正常顯示的12#defineGUI_DEFAULT_FONT&GUI_Font6*8  //這里是設(shè)定默認(rèn)字體的,我們可以在要寫(xiě)什么字的時(shí)候把該字號(hào)的字體.13//c包含進(jìn)我們的主函數(shù)里面,所以這里不用改14#defineGUI_ALLOC_SIZE5000//這里講的是動(dòng)態(tài)內(nèi)存機(jī)制15                    //這里rgb接口模式的可能會(huì)有用到,uCGUI就是在我們的ram開(kāi)辟一塊空間,                      //然后uCGUI把運(yùn)算好的每個(gè)點(diǎn)都放進(jìn)我們主控ram里面的空間16                    //所以,這里就相當(dāng)于把寫(xiě)進(jìn)液晶gram里面的操作變成了寫(xiě)進(jìn)主控ram里面,                      //那么大家可能就會(huì)問(wèn)了,干嘛這么多次一舉,直接寫(xiě)進(jìn)去不就可以了1718/*原理:一般來(lái)說(shuō),在大的屏幕上面(4.0以上吧,印象中),都是沒(méi)有控制器,(像我的液晶屏就是spfd5420,當(dāng)然,19不同的屏幕的液晶主控都是不一樣的,但是寄存器操作都是差不多的,20所以有些初始化配置還是能互用的.)所以呢,這時(shí)候我們要用到的就只有RGB接口了,21RGB要求我們要不斷的刷新屏幕,刷新率越高,效果就越好,因?yàn)橐话氵@種用來(lái)做動(dòng)態(tài)的,uCGUI就是屬于靜態(tài)類(lèi)型的22像如果我們要用stm32主控做視頻應(yīng)用的時(shí)候,就是動(dòng)態(tài)的,我們需要不斷的刷新屏幕,但是當(dāng)我們主控一邊運(yùn)算,23一邊往液晶接口送數(shù)據(jù)的時(shí)候,會(huì)有明顯刷屏的感覺(jué)(運(yùn)算->畫(huà)點(diǎn)->運(yùn)算->畫(huà)點(diǎn)....,這個(gè)運(yùn)算24->運(yùn)算.......畫(huà)點(diǎn)->畫(huà)點(diǎn)->畫(huà)點(diǎn)...是不一樣的,因?yàn)閷?duì)屏幕一直畫(huà)點(diǎn),填充,而中間不用插入運(yùn)算,25刷一個(gè)屏幕時(shí)間時(shí)間倍速差別是非常巨大的,后面大家也會(huì)見(jiàn)識(shí)到這種差別.),所以,用GUI申請(qǐng)的空間里面26邊運(yùn)算,邊填充,填充完再一次性運(yùn)出去(這里可以通過(guò)DMA控制FSMC總線,不斷的從外置SRAM往GRAM自動(dòng)搬運(yùn)數(shù)據(jù),27這是不用主控去插手的,所以,主控大部分時(shí)間是負(fù)責(zé)運(yùn)算,其他時(shí)間可以空閑出來(lái),28讓DMA自己去忙活),同理,因?yàn)閐ma跟cpu的分工,所以,這里同樣的把畫(huà)點(diǎn),畫(huà)點(diǎn),運(yùn)算,運(yùn)算不完全的分開(kāi)了,29屏幕刷新速度非常之可觀(DMA的速度相比大家還是非常了解的,它就是為速度而生的.),*/3031//#defineGUI_ALLOC_SIZE1024*1024      /*Sizeofdynamicmemory...ForWMandmemorydevices*/3233/*********************************************************************34*35*Configurationofavailablepackages36*/3738#defineGUI_WINSUPPORT1//這個(gè)是窗口支持,一般開(kāi)始開(kāi)著的39#defineGUI_SUPPORT_MEMDEV1//內(nèi)存控制,開(kāi)40#defineGUI_SUPPORT_AA0//抗鋸齒,為了性能著想,還是關(guān)了比較好4142#endif/*Avoidmultipleinclusion*/

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉