版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1μC/GUIμC/GUILCD的應(yīng)用提供一個有效的不依賴于處理器和LCD它的設(shè)計是模塊化的,由在不同的模塊中的不同的層組成。一個層,稱作LCD驅(qū)動程序,包RAM本指南描述如何安裝,配置和在嵌入式應(yīng)用中使用μC/GUI16/32/64CPUDSP8(RTOS虛擬顯示,任何LCD控制器和CPU。其特點(diǎn)包括下列這些:參見第25章:“標(biāo)準(zhǔn)字體”。支持回調(diào)函數(shù)(可選擇用法括一個展示大部分μC/GUI特點(diǎn)的應(yīng)用程序。所有的功能(API。NewXYXY即值(X,YXYX(或者一個窗口)的LCDLCDConf.hLCDLCDLCDSEG,為了能訪問該LCD,連接程序/定位器只需要告知這些段位于什么地方。該位置必須與物理地址空間中訪問地址相吻合。驅(qū)動程序?qū)τ谶@類接口是有效的,并且能用于不同的LCD控制器。LCDLCD48性地將數(shù)據(jù)從高速緩存的內(nèi)存?zhèn)鬟f到你的LCD。CμC/GUIsignedunsignedsignedunsignedsignedunsignedsignedunsigned16/32文件LCDConf.h中。第2這種習(xí)慣有一個好處,就是很容易升級更新版本的μC/GUI,只需要替換GUI目錄就可以。 存儲器件支持GUI/Widget(如果使用視窗控件庫警告:你必須確認(rèn)你在每個文件中只使用了一個版本的接,建立一個庫就很有意義了,否則如果將每樣?xùn)|西都要進(jìn)行連接的話,程序會變得非常大。CPU從源程序建立一個庫是一個簡單的流程。第一步是拷貝批處理文件(“Sml\kb”目錄下面)到根目錄下。然后,做一些必要的修改。總共有四個批處理Mkib”在所有的系統(tǒng)中都是一樣的,所以無需修改。在你的目標(biāo)系統(tǒng)上建立一個庫,正常情況下你需要對其它三個比較小的文件做一些微小的改動。最后執(zhí)行“Makelib.batGUI目錄已經(jīng)如前面所推薦的那樣建立起來了。文 lib.bat否LCDConf.h節(jié),請參閱第20需要的LCDConf.h。數(shù)值都可以激活,但是使用“1”。這些開關(guān)能夠啟用或禁止某一個選擇開關(guān)用于從多個選項中選擇一項(只能選中一項一個類似于簡單的文本替代這樣操作的宏。一個典型例子是定義U8,預(yù)處理程序會用“unsignedcharU8來定制開始運(yùn)行。更詳細(xì)的內(nèi)容及范例程序的修改請參考第21章:高層次配置。到現(xiàn)在,你應(yīng)該對如何使用μC/GUI在μC/GUI所帶的范例中的它的名稱為Basic_HelloWorld.c。文件 目的 繪制“Helloworld”的簡單范#include 主函 void{GUI_DispString("Helloworld!");}文件 目的 繪制“Helloworld”的簡單范#include 主函 void{intGUI_DispString("Helloworld!");{GUI_DispDecAt(i++,20,20,4);if(i>9999)i=0;}}第3仿真的整個圖形庫I和視窗管理I與你的目標(biāo)系統(tǒng)是一樣的;所有函數(shù)運(yùn)行與在目標(biāo)的底層:D驅(qū)動。C仿真使用一個仿真的驅(qū)動寫入一個位圖,以代替實(shí)際的D驅(qū)動。在你的屏幕上顯示的位圖使用第二個仿真線程。第二個線程在實(shí)際應(yīng)用并不存在,它只是在D上面所示的根目錄包括微軟VisualC++工作區(qū)(Simulation-Trial.dsw)VisualC++和啟動它。請注意,如果需要建立可執(zhí)行文件,你必須先安裝微軟VisualC++(6.0或以上的第一步:雙擊Simulation-Trial.dswVisualC+第二步:在菜單中選擇“Build/RebuildAll”(或按“F7”鍵)第三步:在菜單中選擇“Build/StartDebug/Go(或按“F5”鍵)開始仿真。第五步:在菜單下選擇“Build/RebuildAll”(或按“F7”鍵)第六步:在菜單中選擇“Build/StartDebug/Go(或按“F5”鍵)開始仿真。上使用μC/GUI上面所顯示的根目錄包括微軟VisualC++工作區(qū)(Simulation.dsw)(Simulation.dsp)仿真演示包括一個或多個可以修改的C文件(在“”目錄下),你也可以在項目中增加或刪除文件。最典型的是你至少應(yīng)該把位圖修改成為你公司的徽標(biāo)或所選擇的圖片。你應(yīng)該在VisualC++并打算在你的應(yīng)用中使用該程序,你應(yīng)該能夠在目標(biāo)系統(tǒng)中編譯這些同樣的文件,得目標(biāo)顯第一步:雙擊Simulation.dswVisualC++第二步:在菜單下選擇“Build/RebuildAll”(或按“F7”鍵)第三步:在菜單中選擇“Build/StartDebug/Go”(或按“F5”鍵)第六步:在VisualC++中編譯及運(yùn)行應(yīng)用程序測試結(jié)果,根據(jù)你的需要進(jìn)行繼續(xù)修觀察器可能解決這個問題,它能顯示仿真的LCD窗口和色彩窗口。觀察器的執(zhí)行文件是第二步:打開VisualC++的位置總是在頂部,你可能通過在菜單中選擇“View\Alwaysontop”修改這個行為。為Device.bmp。它可以是一個獨(dú)立文件(在同一目錄下作為一個可執(zhí)行文件),或是做為一145BITMAPDISCARDABLE設(shè)備位圖是你的操作系統(tǒng)所限制的復(fù)雜形狀,但是一般的就足夠了)。亮紅色(0)是默認(rèn)的透明區(qū)域的顏,主要因為在大多數(shù)位圖中很少用到這種顏色。如果位圖中含有亮紅色,你可MHardkey表示該Hardkey“沒有按下”。在“按下”和“非按下”之間的切換行為也可以在程序145BITMAPDISCARDABLE146BITMAPDISCARDABLE盡管在像素上一樣,這樣在e.mp上的Hy就能夠正確地覆蓋在eimp相應(yīng)的位置上。下面的例子說明了這種情況:當(dāng)一個鍵被鼠標(biāo)“按下”,hardkey(Device1.bmp)的相應(yīng)部分將覆蓋設(shè)備位圖以#include<windows.h>#include<stdio.h>#include"SIM.h"voidSIM_X_Init(){ LCD}函說voidSIM_SetLCDPos(intx,int 含x仿真LCD左上角(單位:像素)Xy仿真LCD左上角(單位:像素)YI32SIM_SetTransColor(I32 inty的序號遵循閱讀順序(從左到右,從上到下)。因此一個y最頂端的像素首先被發(fā)現(xiàn),而不管它的水平位置如果。例如,在下面的位圖中,Hardkey被標(biāo)號,而在其yintSIM_HARDKEY_GetState(unsignedint SIM_HARDKEY_CB*SIM_HARDKEY_SetCallback unsignedintSIM_HARDKEY_CB* typedefvoidSIM_HARDKEY_CB(intKeyIndex,int 含 intSIM_HARDKEY_SetMode(unsignedintKeyIndex,int 含行為模式(如下表所示 正常行為(默認(rèn) intSIM_HARDKEY_SetState(unsignedintKeyIndex,int 第4使用μC/GUIGUI_DispString("Hello上面的代碼將會在當(dāng)前文本坐標(biāo)顯示文本“Helloworld!X=0;Y+=字體-距離()( GUI_DispString("Hello 函說GUI_voidGUI_DispChar(U16 cvoidGUI_DispCharAt(U16c,I16Px,I16P cxyvoidGUI_DispChars(U16c,int參 c重復(fù)的次數(shù)GUI_DispChars('*',30);voidGUI_DispString(constcharGUI_FAR s在屏幕上顯示“Helloworld”及在下一行顯示“NextGUI_DispString("Hello GUI_DispString("\nNext voidGUI_DispStringAt(constcharGUI_FAR*s,intx,int sxy在屏幕上坐標(biāo)(50,20)處顯示“PositionGUI_DispStringAt("Position50,20",50,20); 相關(guān)主題GUI_DispString(),GUI_DispStringAtCEOL(),該函數(shù)使用的參數(shù)與_tiA()完全一致。它也執(zhí)行同樣的操作:在指定坐標(biāo)顯示所給出的字符串。但是,完成這步操作后,它會調(diào)用UpEL函數(shù)清除本行剩下部分內(nèi)容直至行末。如果字符串覆蓋了其它的字符串,同時該字符串長度比原先的字符串短的時候,使用該函數(shù)就會很方便。voidGUI_DispStringInRect(constcharGUI_FARconstGUI_RECT*pRect,intAlign); sGUI_RECTrClient;GUI_DispStringInRect("Text",&rClient,GUI_TA_HCENTER|voidGUI_DispStringLen(constcharGUI_FAR*s,int s文本可能正常顯示,此時模式標(biāo)識應(yīng)指定為GUI_TEXTMODE_NORMAL0通常情況下,用白色繪制的(實(shí)際字符)文本通過指定標(biāo)識GUI_TEXTMODE_TRANS|GUI_TEXTMODE_REVERSEGUI_DrawLine(80,10,240,GUI_DrawLine(80,90,240,GUI_SetBkColor(GUI_BLACK);GUI_SetColor(GUI_WHITE);GUI_DispStringHCenterAt("GUI_TM_NORMAL",160,10);GUI_DispStringHCenterAt("GUI_TM_REV",160,26);GUI_DispStringHCenterAt("GUI_TM_TRANS",160,42);GUI_DispStringHCenterAt("GUI_TM_XOR",160,58);GUI_SetTextMode(GUI_TM_TRANS|GUI_TM_REV);GUI_DispStringHCenterAt("GUI_TM_TRANS|GUI_TM_REV",160,74);intGUI_SetTextMode(int 設(shè)置正常文本,這是默認(rèn)的設(shè)置,該數(shù)值等同于屏幕上坐標(biāo)(0,0)處顯示“Thevalueis”,設(shè)置文本模式為反轉(zhuǎn)模式,再將其設(shè)回正inti=GUI_DispStringAt("Thevalueis",0,0);GUI_DispDec(20,3);intvoidGUI_SetLBorder(int xintGUI_SetTextAlign(int GUI_SetTextAlign(GUI_TA_HCENTER|GUI_TA_VCENTER);GUI_GotoXY(),GUI_GotoX(),charGUI_GotoXY(intx,inty);charGUI_GotoX(intx);charGUI_GotoY(int xyGUI_DispString("Thevalueintintvoid在屏幕上顯示“Helloworld”,等待1GUI_DispStringAt("Helloworld"0, 1秒鐘(非μC/GUI部分 void在屏幕上顯示“Helloworld”,等待1秒鐘,然后在同步坐標(biāo)顯示“Hi”,代替原先的GUI_DispStringAt("Helloworld"0, GUI_DispStringAt("Hi",0,0);第5任何系統(tǒng)。使用本章所述的函數(shù)有時能在ROM的存儲空間和執(zhí)行時間上進(jìn)行精簡。函說替首位的voidGUI_DispDec(I32v,U8 含v顯示的數(shù)字的數(shù)量(最大為voidGUI_DispDecAt(I32v,I16Px,I16Py,U8參 vxy顯示的數(shù)字的數(shù)量(最大為GUI_DispDecAT(Sec,200,0,voidGUI_DispDecMin(I32 v最小值為:-2147483648(-GUI_DispString(“Theresultis:”);voidGUI_DispDecShift(I32v,U8Len,U8 v顯示的數(shù)字的數(shù)量(最大為voidDispDecSpace(I32v,U8 vGUI_DispString(“Theresultis:”);GUI_DispDecSpace(Result,200);voidGUI_DispSDec(I32v,U8 V顯示的數(shù)字的數(shù)量(最大為voidGUI_DispSDecShift(I32v,U8Len,U8 v顯示的數(shù)字的數(shù)量(最大為void{longl=12345;GUI_DispSDecShift(l,7,3);GUI_DispStringAt(“Pressanykey”,0,GUI_VYSIZE-8);}voidGUI_DispFloat(floatv,char v最小值為:1.2E-38顯示的數(shù)字的數(shù)量(最大為voidDemoFloat(void){floatf=123.45678;GUI_DispFloat(f,9);GUI_DispFloat(-f,9);GUI_DispFloatFix(f,9,2);GUI_DispFloatFix(-f,9,2);GUI_DispSFloatFix(f,9,2);GUI_DispSFloatFix(-f,9,2);GUI_DispFloatMin(f,3);GUI_DispFloatMin(-f,3);GUI_DispSFloatMin(f,3);GUI_DispSFloatMin(-f,3);GUI_DispStringAt(“Pressanykey”,0,GUI_VYSIZE-8);}voidGUI_DispFloatFix(floatv,charLen,char V最小值為:1.2E-38顯示的所有數(shù)字的數(shù)量(最大為voidGUI_DispFloatMin(floatf,char v最小值為:1.2E-38voidGUI_DispSFloatFix(floatv,charLen,char v最小值為:1.2E-38顯示的所有數(shù)字的數(shù)量(最大為voidGUI_DispSFloatMin(floatf,char v最小值為:1.2E-38voidGUI_DispBin(U32v,U8 v顯示的數(shù)字的數(shù)量(包括首位的U32Input=0x7;GUI_DispBin(Input,6);voidDispBinAt(U32v,I16Py,I16Px,U8 vxy顯示的數(shù)字的數(shù)量(包括首位的GUI_DispBinAt(Input,0,0,8);相關(guān)主題GUI_DispBin(),voidGUI_DispHex(U32v,U8 vGUI_DispDec(),GUI_DispBin(),constchar*第62-D作于一個像素大小的筆尖尺寸。這意味著在使用類似GUI_DrawLine當(dāng)使用諸如GUwoLne這樣的函數(shù)或多次調(diào)用Dwo函數(shù),轉(zhuǎn)角點(diǎn)會反相兩次。結(jié)果是這些像素保持背景顏色。GUI_DRAWMODEGUI_SetDrawMode(GUI_DRAWMODE GUI_FillCircle(120,64,40);GUI_FillCircle(140,84,40);使用任何有效的繪圖模式。因為這些函數(shù)在大多數(shù)應(yīng)用中被頻繁調(diào)用,因此它們已經(jīng)被盡量voidGUI_ClearRect(intx0,inty0,intx1,int 含voidGUI_DrawPixel(intx,int xyvoidGUI_DrawPoint(intx,int參 xyvoidGUI_FillRect(intx0,inty0,intx1,int參 voidGUI_InvertRect(intx0,inty0,intx1,int voidGUI_DrawBitmap(constGUI_BITMAP*pBM,intx,int xy址開始,而位圖的第N行在地址偏移量n*BytesPerLine處開始。位圖可以在客戶區(qū)中任意一externconstGUI_BITMAPbmMicriumLogo; voidmain(){}voidGUI_DrawBitmapExp(intx0,intintXSize,intYSize,intXMul,intYMul,intBitsPerPixel,intBytesPerLine,constU8*pData,constGUI_LOGPALETTE* xyvoidGUI_DrawBitmapMag(constGUI_BITMAP*intx0,intintXMul,int voidGUI_DrawStreamedBitmap constGUI_BITMAP_STREAMintx,inty); xyvoidGUI_DrawHLine(inty,intx0,int yvoidGUI_DrawLine(intx0,inty0,intx1,int voidGUI_DrawLineRel(intdx,int voidGUI_DrawLineTo(intx,int xyvoidGUI_DrawPolyLine(constGUI_POINT*pPoint,intNumPoints,intx,int參 xyvoidGUI_DrawVLine(intx,inty0,int xvoidGUI_DrawPolygon(constGUI_POINT*pPoint,intNumPoints,intx,int xyvoidGUI_EnlargePolygon GUI_POINT*constGUI_POINT*pSrc,intNumPoints,int參含#definecountof(Array)(sizeof(Array)/sizeof(Array[0]))constGUI_POINTaPoints[]={{0,{40,{20,GUI_POINTaEnlargedPoints[countof(aPoints)];voidSample(void){intGUI_FillPolygon(aPoints,countof(aPoints),140,110);for(i=1;i<10;i++){GUI_EnlargePolygon(aEnlargedPoints,countof(aPoints),i*5);GUI_FillPolygon(aEnlargedPoints,countof(aPoints),140,110);}}voidGUI_FillPolygon(constGUI_POINT*pPoint,intNumPoints,intx,int參 xyvoidGUI_MagnifyPolygon GUI_POINT*constGUI_POINT*pSrc,intNumPoints,int參 #definecountof(Array)(sizeof(Array)/sizeof(Array[0]))constGUI_POINTaPoints[]={{0,{40,{20,GUI_POINTaMagnifiedPoints[countof(aPoints)];voidSample(void){intMag,y=0,Count=4;for(Mag=1;Mag<=4;Mag*=2,Count/={inti,x=GUI_MagnifyPolygon(aMagnifiedPoints,countof(aPoints),Mag);for(i=Count;i>0;i--,x+=40*Mag){GUI_FillPolygon(aMagnifiedPoints,countof(aPoints),x,}y+=20*}}voidGUI_RotatePolygon(GUI_POINT*constGUI_POINT*pSrc,intNumPoints,float 多邊形旋轉(zhuǎn)的角度(以弧度為單位文件 目的 繪制一個多邊#include 箭頭的 staticconstGUI_POINTaPointArrow[]={0,-{-40,-{-10,-{-10,-{10,-{10,-{40,- 繪制一個多邊 staticvoid{intCnt=0;GUI_DispStringAt("Polygonsofarbitraryshape",0,GUI_DispStringAt("inanycolor",120,20);/*GUI_FillPolygon} NumPoints: 主函 void{}voidGUI_DrawCircle(intx0,inty0,int rvoid{intfor(i=10;i<50;i++)}voidGUI_FillCircle(intx0,inty0,int rvoidGUI_DrawEllipse(intx0,inty0,intrx,int voidGUI_FillEllipse(intx0,inty0,intrx,int /*GUI_FillEllipse(100,GUI_DrawEllipse(100,GUI_FillEllipse(100,voidGL_DrawArc(intxCenter,intyCenter,intrx,intry,inta0,int 客戶視窗中圓弧中心的水平方向坐標(biāo)(以像素為單位客戶視窗中圓弧中心的垂直方向坐標(biāo)(以像素為單位起始角度(度終止角度(度void{intx0=160;inty0=180;inti;charac[4];GUI_SetPenSize(5);GUI_SetColor(GUI_BLACK);GUI_DrawArc(x0,y0,150,150,-30,210);for(i=0;i<=23;{floata=(-30+i*10)*3.1415926/180;intx=-141*cos(a)+x0;inty=-141*sin(a)+y0;if(i%2==0)GUI_SetPenSize(5GUI_SetPenSize(4if(i%2==0){x=-123*cos(a)+x0;y=-sprintf(ac,"%d",10*i);}}}第7隨μC/GUI一章描述了μC/GUIGUIConf.h規(guī)范相兼容的“GUIConf.h(這很必要,這是為了避免由于沒有聲明的外部一旦你連接過一個如上面所描述的字體文件,將要連接的字體聲明為一個外部常量externconstGUI_FONTGUI_FontNew;intmain(void){GUI_Init();GUI_SetFont(&GUI_FontNew);GUI_DispString("Helloworld\n");return0;}GUIConf.h用連接,因此可能會耗盡ROM存儲空間。老版本的μC/GUI一個等級,字體標(biāo)識符(例如F6x8)依然有效。函說constGUI_FONT*constGUI_FONT*GUI_SetFont(constGUI_FONT*pNewFont)void{constGUI_FONTGUI_FLASH*OldFont=GUI_SetFont(&GUI_Font8x16);GUI_DispStringAt("Thistextis8by16pixels",0,0);GUI_DispStringAt("Thistextis6by8pixels",0,20);GUI_DispStringAt("Thistextisproportional"040); //恢復(fù)字體}GUI_SetFont(&GUIGUI_DispString("Theresult intGUI_GetCharDistX(U16cintYvoidGUI_GetFontInfo(constGUI_FONT*pFont,GUI_FONTINFO*typedef{U16GUI_FONTINFOFontInfo;GUI_GetFontInfo(&GUI_Font6x8,&FontInfo);int返回值是當(dāng)前選擇字體入口Y軸方向大小數(shù)值。該值小于或等于通過執(zhí)行intGUI_GetStringDistX(constcharGUI_FARsintGUI_GetYDistOfFont(constGUI_FONT*intGUI_GetYSizeOfFont(constGUI_FONT*參考charGUI_IsInFont(constGUI_FONT*pFont,U16cif(GUI_IsInFont(&GUI_FontD32,'X')=={GUI_DispString("GUI_FontD32doesnotcontains'X'}0123456789ABCDEF!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ASCII程序所接受的標(biāo)準(zhǔn)是ISO8859-1,一個ASCII字符的擴(kuò)展集。ISO8859-1non-breakinginverted?cent¢pound£generalcurrency¤yen¥brokenvertical|section§umlaut¨?femininealeftanglequote,?not?softregistered?macronˉdegree°plusor±superscript2superscript3acute′microμparagraph?middle·?superscript1masculineorightanglequote,guillemot?fractionone-?fractionone-?fractionthree-?invertedquestion?capitalA,graveàcapitalA,acuteácapitalA,circumflex?capitalA,?capitalA,dieresisorumlaut?capitalA,?capitalA,diphthong?capitalC,?capitalE,graveècapitalE,acuteécapitalE,circumflexêcapitalE,dieresisorumlaut?capitalI,graveìcapitalI,acuteícapitalI,circumflex?capitalI,dieresisorumlaut?Eth,DN,?capitalO,graveòcapitalO,acuteócapitalO,circumflex?capitalO,?capitalO,dieresisorumlaut?multiply×capitalO,?capitalU,graveùcapitalU,acuteúcapitalU,circumflex?capitalU,dieresisorumlautücapitalY,acuteYTHORN,Tsharps,German(s-z?smalla,graveàsmalla,acuteásmalla,circumflexasmalla,?smalla,dieresisorumlaut?smalla,?smallaediphthong??smalle,graveèsmalle,acuteésmalle,circumflexêsmalle,dieresisorumlaut?smalli,graveìsmalli,acuteísmalli,circumflex?smalli,dieresisorumlaut?smalleth,esmalln,?smallo,graveòsmallo,acuteósmallo,circumflex?smallo,?smallo,dieresisorumlaut?division÷smallo,?smallu,graveùsmallu,acuteúsmallu,circumflex?smallu,dieresisorumlautüsmally,acuteysmallthorn,tsmally,dieresisorumlaut?1630,000Micrium公司,或你的發(fā)行人,因為我們可能有你所需要的字符。WindowsWindowsPC“C”文件。同時也能夠進(jìn)行色彩轉(zhuǎn)AdobePhotoshopCorelPhotopaint。通常,使用這些軟件進(jìn)行圖像一幅圖像必須首先以一個.bmp以下類型的.bmp文件可以在程序中載入:轉(zhuǎn)換后的位圖可以保存為一個.bmp(可以再次載入及使用或用其它位圖處理軟件載龐大。對于全彩色位圖,很有必要將其轉(zhuǎn)換成調(diào)色板格式的位圖,因為位圖轉(zhuǎn)換器不能從一在這個例子中,選擇的位圖文件是選擇“Image/ConvertInto.”再選擇所“Bestpalette(最佳調(diào)色板”際顏色都包括在這16種顏色當(dāng)中。類型,在本范例中,文件以“Cwith的文件,該文件包括位圖的C代碼。實(shí)現(xiàn)這個目的最普通的辦法是如上面范例所述的使用“Bestpalette”選項,這是給專在菜單中選擇“Image/ConvertInto/Bestpalette”就可實(shí)現(xiàn)。Image/Convetnto.例如,假設(shè)一幅全彩色模式的位圖在屏幕上顯示,而屏幕只支持四級灰度。這幅位圖會浪費(fèi)存儲間以保持位圖的原始格式,盡管它在屏幕上只以四級灰度顯示。轉(zhuǎn)換的過程如下所示:選擇“Image/Convert板),應(yīng)必須用到一個定制調(diào)色板。你可以選擇菜單中的“Image/ConvertInto/Custom因此整個文件大小為:16+(NumColors*4)個字節(jié)。一個8種顏色的定制調(diào)色板將會占用:168*4)48該范例文件定義一個調(diào)色板,包含兩種顏色:紅與白:656d57696e50616c020000000000000010:ff000000ffffff40:RRGGBB00BmpCvt<文件名>.bmp(如果用到多個命令,則在每兩個命令之間要用一個空格隔開BmpCvtMicriumLogo200.bmp-convertintobestpalette-saveaslogo2,1-注意,當(dāng)文件載入位圖轉(zhuǎn)換器總是包括它的.bmpsaveas名。用一個整數(shù)指定的所需要獲得的文件類型。在上面-saveas“1”表示“帶“BmpCvt/?”獲得這些內(nèi)容。命說Invert-saveas<filename,type:1~6“C”文件(.c文件“C”文件(.c壓縮的帶調(diào)色板的“C”文件(.cC”文件(.c流(.dtaWindows的位圖文件(.bmpC-filegeneratedbyμC/BmpCvtV2.30b,compiledMay82002,10:05:(c)2002Micrium,Inc.www.micrium.(c)1998-2002SeggerMicrocontrollerSystemeGmbHSourcefile:MicriumLogoBlueDimensions:269*NumColors:#include"stdlib.h"#include/*ThefollowingaretheentriesofthepaletteEveryentryisa32-bitvalue(ofwhich24bitsareactuallyused)the8bitsrepresenttheRedthemiddle8bitsrepresenttheGreenthehighest8bits(ofthe24bitsused)representtheBluecomponentasfollows:constGUI_COLORColorsMicriumLogoBlue[]=constGUI_LOGPALETTEPalMicriumLogoBlue /*numberofentries*/ /*Notransparency*/constunsignedcharacMicriumLogoBlue[]=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,...0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x20,0x01,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,constGUI_BITMAPbmMicriumLogoBlue= /*XSize76,/*YSize /*BytesPerLine /*BitsPerPixelacMicriumLogoBlue,/*Pointertopicturedata(indices)&PalMicriumLogoBlue/*Pointertopalette/****Endoffile***位圖中用到的總像素的數(shù)量為269×76=20444。存儲兩個像素,則圖像尺寸未壓縮為20444÷2=10222字節(jié)。C-filegeneratedbyμC/BmpCvtV2.30b,compiledMay82002,(c)2002Micrium,Inc.(c)1998-2002SeggerMicrocontrollerSystemeGmbHSourcefile:LogoCompressedDimensions:269*76NumColors:#include"GUI.H"/*ThefollowingaretheentriesofthepaletteEveryentryisa32-bitvalue(ofwhich24bitsareactuallyused)thelower8bitsrepresenttheRedcomponent,themiddle8bitsrepresenttheGreenthehighest8bits(ofthe24bitsused)representtheBluecomponentasfollows:0xBBGGRRconstGUI_COLORColorsLogoCompressed[]{constGUI_LOGPALETTEPalLogoCompressed{10,/*numberofentries*/0,/*Notransparency*/constunsignedcharacLogoCompressed[]=@254,@254,@1,@254,@0,2,@0,2,@254,0x01,13,@0,3,0x20,@254,0x02,13,0};/*4702for20444pixelsconstGUI_BITMAPbmLogoCompressed{269,/*XSize76,/*YSize135,/*BytesPerLineGUI_COMPRESS_RLE4,/*BitsPerPixelacLogoCompressed,/*Pointertopicturedata(indices)&PalLogoCompressed/*Pointertopalette/****Endoffile***第9μC/GUI(不同亮度的單色)及彩色顯示屏。同一個用戶程序可以用于不位的數(shù)值,其中每個基色8位,如:0xBBGGRR。因此,白色應(yīng)該為0xFFFFFF,黑色應(yīng)該為0x000000,大紅為0xFF0000。LCD,C/GUI本的“最小平方偏移搜索”對它們進(jìn)行轉(zhuǎn)換。它對顯示的顏色(邏輯顏色)LCD示(物理顏色)的所有有效顏色進(jìn)行比較,然后使用LCD度量認(rèn)為最接近的顏色。黑藍(lán)綠青紅GUI_BROW褐灰黃白/*將背景色設(shè)為洋紅*/320*240Windows的,它看起來和你的顯示屏實(shí)際輸出正確的吻合。該程序在隨μC/GUI文件 COLOR目的 繪制一個色彩條的例#include void{intx0=60,y0=40,yStep=15,intNumColors=LCD_GetDevCap(LCD_DEVCAP_NUMCOLORS);intxsize=LCD_GetDevCap(LCD_DEVCAP_XSIZE)-x0;GUI_DispStringHCenterAt("μC/GUI-sample:Showcolorbars",160,0);GUI_DispString("Fixedpalette:");GUI_DispStringAt("Red",0,y0+yStep);GUI_DispStringAt("Green",0,y0+3*yStep);GUI_DispStringAt("Blue",0,y0+5*yStep);GUI_DispStringAt("Grey",0,y0+6*yStep);GUI_DispStringAt("Yellow",0,y0+8*yStep);GUI_DispStringAt("Cyan",0,y0+10*yStep);GUI_DispStringAt("Magenta",0,y0+12*yStep);for(i=0;i<xsize;i++){U16cs=(255*(U32)i)/xsize;U16x=x0+i;;/*GUI_DrawVLine(x,y0,y0+yStep-1);GUI_SetColor(0xff+(255-cs)*0x10100L);GUI_DrawVLine(x,y0+yStep,y0+2*yStep-1);/*GUI_DrawVLine(x,y0+2*yStep,y0+3*yStep-1);GUI_SetColor(0xff00+(255-cs)*0x10001L);GUI_DrawVLine(x,y0+3*yStep,y0+4*yStep-1);/**GUI_SetColor(cs*GUI_DrawVLine(x,y0+4*yStep,y0+5*yStep-1);GUI_SetColor(0xff0000+(255-cs)*0x101L);GUI_DrawVLine(x,y0+5*yStep,y0+6*yStep-1);/*GUI_SetColor((U32)cs*GUI_DrawVLine(x,y0+6*yStep,y0+7*yStep-/*GUI_SetColor(cs*GUI_DrawVLine(x,y0+7*yStep,y0+8*yStep-1);GUI_SetColor(0xffff+(255-cs)*0x10000L);GUI_DrawVLine(x,y0+8*yStep,y0+9*yStep-1);/*GUI_SetColor(cs*GUI_DrawVLine(x,y0+9*yStep,y0+10*yStep-1);GUI_SetColor(0xffff00+(255-cs)*0x1L);GUI_DrawVLine(x,y0+10*yStep,y0+11*yStep-1);/*GUI_SetColor(cs*GUI_DrawVLine(x,y0+11*yStep,y0+12*yStep-1);GUI_SetColor(0xff00ff+(255-cs)*0x100L);GUI_DrawVLine(x,y0+12*yStep,y0+13*yStep-1);} 主函 void{GUI_Init();}#define(12(黑和白1024(灰度20416(灰度408000-10-10-100-10-1011bpp(黑和白22bpp(4有效顏色數(shù)量:2×244bpp(168模式。如果你的硬件只支持每像素每基色1如果你的硬件沒有一個調(diào)色板用于每種單獨(dú)2233233-233233849332332848×8×4=256-332332444444紅,綠,藍(lán)每部分平均分配4位。555555使用該模式需要一個支持15bpp的RGB顏色深-55555556556532×64×32=65536.-565565有效顏色數(shù)量:32×64×32=65536.86668bpp616該模式多數(shù)用于一個可編程的顏色查詢表6級有效亮度,附加16級灰度。有效顏色數(shù)量:LCDμC/GUI能PC#defineLCD_FIXEDPALETTE#defineLCD_PHYSCOLORS0xffffff,0xaaaaaa,0x555555,一個查詢表的條目,或者顏色映射,定義一個指定的RGB數(shù)值。階段(GUI_Init()LCD_Init()LCD_InitLUTLCD_L0_SetLUTEntry())進(jìn)行初始化。然而,它可能需要在運(yùn)行時修改LUT(因為不同的理由。一些可能的理由包括:需要使用比硬件能顯示顏色(在一個時間段)更多的顏色(在不同的時間GUIConf.h(LCD_PHYS_COLORS)進(jìn)行編譯時被定義。為API函數(shù)GUI_SetLUTColor()會有效,就能用于在同一時間修改顏色表和LUT的內(nèi)容。說設(shè)置一種索引色的顏色(硬件及顏色表GUICOLORGUIintGUICOLORGUIintGUICOLORGUISetBkColor(GUICOLOR intGUI_SetBkColorIndex(int參 voidGUI_SetColor(GUI_COLOR voidGUI_SetColorIndex(int intGUI_Color2Index(GUI_COLOR intGUI_Index2Color(int參 LCDvoidLCD_InitLUT(void)voidGUI_SetLUTColor(U8Pos,GUI_COLOR 4bpp為0~15,8bpp為0~255)設(shè)置為同一個數(shù)值(例如0x555555或0xa0a0a0。該函數(shù)需要激活查詢表(LCD_INITCONTROLLER)才有效果。該函數(shù)總是有效的,voidGUI_SetLUTEntry(U8Pos,GUI_COLOR 4bpp為0~15,8bpp為0~255)設(shè)置為同一個數(shù)值(例如0X555555或0Xa0a0a0。該函數(shù)需要激活查詢表(LCD_INITCONTROLLER)才有效果。該函數(shù)常常用于確保GUI_SetLUTEntry(0,0x000000);GUI_SetLUTEntry(1,0x777777);GUI_SetLUTEntry(2,0xbbbbbb)GUI_SetLUTEntry(3,0xffffff)第10存儲設(shè)備是一個附加(可選)的軟件項目,不隨μC/GUI備的軟件包位于子目錄GUI\Memdev下。一樣的:旋轉(zhuǎn)一個工件,標(biāo)注各自的旋轉(zhuǎn)角度(10。在第一個例子(不使用存步驟5:(只有在使用存儲設(shè)備時有建立存儲設(shè)備(GUI_MEMDEV_Create;激活它(GUI_MEMDEV_Select;將結(jié)果拷貝到顯示屏(使用GUI_MEMDEV_CopyToLCD;使用GUI_MEMDEV_Delete置文件GUIConf.h中加入下面一行而關(guān)閉:#define 改為1。API函說GUI_MEMDEV_Create建立存儲設(shè)備(第一步GUI_MEMDEV_CopyToLCDGUI_MEMDEV_DeleteGUI_MEMDEV_SelectGUI_MEMDEV_ClearGUI_MEMDEV_CopyFromLCDGUI_MEMDEV_GetYSizeGUI_MEMDEV_ReduceYSizeGUI_MEMDEV_SetOrgGUI_MEMDEV_DrawGUI_MEMDEV_CreateAutoGUI_MEMDEV_DeleteAutoGUI_MEMDEV_DrawAutoGUI_AUTODEVGUI_MEMDEV_HandleGUI_MEMDEV_Create(intx0,inty0,intXSize,int voidGUI_MEMDEV_CopyToLCD(GUI_MEMDEV_Handle voidGUI_MEMDEV_Delete(GUI_MEMDEV_Handle voidGUI_MEMDEV_Select(GUI_MEMDEV_Handle voidGUI_MEMDEV_Clear(GUI_MEMDEV_Handle 使用GUI_MEMDEV_CopyToLCD的下一步繪圖操作是,只有在GUI_MEMDEV_ClearvoidGUI_MEMDEV_CopyFromLCD(GUI_MEMDEV_Handle 從存儲區(qū)域拷貝存儲設(shè)備的內(nèi)容(反鋸齒)LCDvoidGUI_MEMDEV_CopyToLCDAA(GUI_MEMDEV_Handle GUI_MEMDEV_HandlehMem=GUI_MEMDEV_Create(0,0,60,32);intGUIMEMDEVGetYSize(GUIMEMDEVHandle voidGUIMEMDEVReduceYSize(GUIMEMDEVHandlehMem,int voidGUI_MEMDEV_SetOrg(GUI_MEMDEV_HandlehMem,intx0,int 水平坐標(biāo)(左上角像素垂直坐標(biāo)(左上角像素范例見Source\Misc\MemDev.c文件。文件 目的 展示如何使用存儲設(shè)備的簡單例#include 展示存儲設(shè)備的使 staticvoidDemoMemDev(void){GUI_MEMDEV_HandlehMem;{/*hMem=GUI_MEMDEV_Create(0,0,110,/*向存儲設(shè)備繪一個文本*/GUI_DispStringAt(“Memorydevice”00);}} 主函 void{}一個存儲設(shè)備首先通過執(zhí)行指定的繪圖函數(shù)進(jìn)行內(nèi)容填充。設(shè)備填充完畢后,其內(nèi)容寫LCD這依賴于你的配置(1G_LCSE。一個分片存儲intGUI_MEMDEV_Draw GUI_RECT*GUI_CALLBACK_VOID_P*pfDraw,void*pData,intFlags) 0GUI_MEMDEV_HASTRANS下面的范例展示了一個分片存儲設(shè)備的使用。其源文件是Source\Misc\文件 目的 展示如何使用分片存儲設(shè)備的例#includestaticconstGUI_POINTaPoints[]{#defineSIZE_OF_ARRAY(Array)(sizeof(Array)/sizeof(Array[0]))typedefstruct{intXPos_Poly,YPos_Poly;intXPos_Text,YPos_Text;GUI_POINT}繪圖函 staticvoidDrawIt(void*pData){tDrawItContext*pDrawItContext=(tDrawItContext*)pData;/*GUI_FillRect(pDrawItContext--+-*GUI_FillPolygon(pDrawItContext-160,120);/** 220-pDrawItContext-pDrawItContext->YPos_Text+220-pDrawItContext->XPos_Text+100,pDrawItContext->YPos_Text+25);}展示分片存儲設(shè) #defineUSE_BANDING_MEMDEV(1)/*0*/voidDemoBandingMemdev(void){intintXSize=LCD_GET_XSIZE();intYSize=LCD_GET_YSIZE();tDrawItContextDrawItContext;GUI_DispStringHCenterAt “Bandingmemorydevice\nwithoutDrawItContext.XPos_Poly=Xsize/2;DrawItContext.YPos_Poly=Ysize/2;DrawItContext.YPos_Text=Ysize/2-4;for(i=0;i<(XSize-100);i++)floatangle=i*3.1415926/60;DrawItContext.XPos_Text=i;/**GUI_RotatePolygon(#if{GUI_RECTRect={0,70,320,170}/*GUI_MEMDEV_Draw(&Rect,&DrawIt,&DrawItContext,0,}/*不使用存儲設(shè)備的簡單繪圖*/DrawIt((void*)&DrawItContext);GUI_Delay(20);/**/}主函 voidmain{GUI_Init();{}}當(dāng)顯示屏必須更新以反映其對象的移動或改變時,存儲設(shè)備非常有用,因此在防止LCDintGUI_MEMDEV_CreateAuto(GUI_AUTODEV* 0voidGUI_MEMDEV_DeleteAuto(GUI_AUTODEV* intGUI_MEMDEV_DrawAuto GUI_AUTODEV*GUI_AUTODEV_INFO*pAutoDevInfo,GUI_CALLBACK_VOID_P*pfDraw,void*pData);參 GUI_AUTODEVGUI_AUTODEV_INFOtypedef{char}時候,設(shè)為0。當(dāng)使用這個特性時,我們推薦使用下面的程序:typedef{GUI_AUTODEV_INFO /*/*}staticvoidDraw(void*{PARAM*pParam=(PARAMif(pParam-{/*}/*if(pParam-{/*(如果需要)}}voidmain{PARAM /*GUI_AUTODEV /*/* /*建立GUI_AUTODEV對象*/GUI_MEMDEV_DrawAuto( /*使用GUI_AUTODEV對象用于繪圖*/&Draw,&Param); /*GUI_AUTODEV}景上繪一個帶有可轉(zhuǎn)動指針的刻度盤,在前景上繪一段小的文字。指針使用μC/GUI息,請參閱第15章:抗鋸齒。文件 目的 展示GUI_AUTODEV對象用法的例#include"GUI.H"#include<math.h>#ifndefWIN32#include#definecountof(Obj)(sizeof(Obj)/sizeof(Obj[0]))#defineDEG2RAD(3.1415926f/180) 縮放位 staticconstGUI_COLORColorsScaleR140[]{0xD3D3D3,0xDFDFDF,0xBBDFBB,0x6161DF,0x61DF61,staticconstGUI_LOGPALETTEPalScaleR140{ /*numberofentries /*staticconstunsignedcharacScaleR140[]{/*staticconstGUI_BITMAPbmScaleR140{ /*X* /*Y* /* /* /*(像素 /* 多邊級的形 #defineMAGstaticconstGUI_POINTaNeedle[]{{MAG*(0),MAG*(0+{MAG*(-3),MAG*(-15+{MAG*(-3),MAG*(-65+{MAG*(3),MAG*(-65+{MAG*(3),MAG*(-15+ 包括繪圖函數(shù)信息的結(jié) typedef{/*Informationaboutwhathastobedisplayed*/GUI_AUTODEV_INFOAutoDevInfo;/*多邊形數(shù)據(jù)*/GUI_POINTaPoints[7]floatAngle;} 獲得角 staticfloatGetAngle(inttDiff){if(tDiff<{return225-0.006*tDiff}tDiff-=15000;if(tDiff<7500){return225-90+0.012*tDiff}tDiff-=return} 繪圖函 staticvoidDraw(void*{PARAM*pParam=(PARAM/*Fixedbackground*if(pParam-{GUI_ClearRect(50+60+bmScaleR140.XSize-GUI_DrawBitmap(&bmScaleR140,60,}/*GUI_AA_FillPolygon(pParam->aPoints,countof(aNeedle),MAG*160,/*Fixedforeground*if(pParam-{GUI_DispStringHCenterAt(“RPM/1000”,160,110);}} 使用分片存儲設(shè)備顯示一個帶指針的刻度 staticvoid{intinttDiff,t0=PARAM /*GUI_AUTODEV /*/*顯示消息*/GUI_DispStringHCenterAt(“ScaleusingGUI_AUTODEV-object”,160,/*建立GUI_AUTODEV對象*//*for(Cnt=0;(tDiff=GUI_GetTime()-t0)<24000;{/*獲得數(shù)值用于顯示一個多邊形來表示指針*/Param.AngleGetAngle(tDiff)*DEG2RAD;GUI_RotatePolygon(Param.aPoints,GUI_MEMDEV_DrawAuto(&AutoDev,&Param.AutoDevInfo,&Draw,}/*“millisecondspicture”*/GUI_DispStringHCenterAt(“Milliseconds/picture:”,160,180);GUI_DispFloatMin((float)tDiff/(float)Cnt,/*刪除GUI_AUTODEV對象*/} 主函 void{#ifndef}中,包括私有的操作系統(tǒng)或任何商業(yè)RTOS,例如embOS或μC/OS。μC/GUI(RTOSμC/GUI使用了一個實(shí)時內(nèi)核(RTOSμC/GUIvoid{XXX_Init();YYY_Init();/*{}},不存在優(yōu)先權(quán)/同步問題。關(guān)于μC/GUIGUI_Init()在你使用這個軟件前APIGUI_DelayGUI_ExecDialog(),不應(yīng)在循環(huán)中使用,因為它們會妨礙其它軟使用默認(rèn)配置,它并不支持多任務(wù)系統(tǒng)使用(#defineGUI_MT0)超級循環(huán)范例(使用C/GUI:void{/*XXX_Init(); /*μC/GUI*{ /*μC/GUI}}μC/GUI(RTOS一個單個任務(wù)調(diào)用μC/GUI(RTOS如果用到視察管理器的回調(diào)機(jī)制,一個μC/GUI更新函數(shù)(GUI_Exec()使用默認(rèn)配置,它并不支持多任務(wù)系統(tǒng)的使用(#defineGUI_MT0);不需要內(nèi)核接口μC/GUI任務(wù)用于用戶界面,調(diào)用μC/GUI(RTOS如果用到視察管理器的回調(diào)機(jī)制,一個μC/GUI更新函數(shù)(GUI_Exec()需要啟用多任務(wù)支持,定義調(diào)用μC/GUI的任務(wù)的最大數(shù)量(引用自GUIConf.h):#defineGUI_MT #defineGUI_MAX_TASK GUI_Exec(),GUI_Delay()程序結(jié)構(gòu)清晰有幫助。如果你的系統(tǒng)有足夠的RAM,專門使用一個任務(wù)(最低級別)更新μC/GUI。該任務(wù)將不斷地調(diào)用GUI_Exec(),不做其它事情,就象下面例子顯示的一樣。dedicatedμC/GUIMT_Multitasking這個范例包括在隨μC/GUI發(fā)布的范例當(dāng)中:GUI背景處 /*觸摸屏輸入也可以處 void{{ /*做背景工作……更新窗口等等*/ /*剩下暫時不做什么事情……空閑處理*/}}GUI下表顯示了用于一個多個任務(wù)調(diào)用μC/GUI宏N4B0 停止,多任務(wù)支持禁止(默認(rèn)值 一個RTOS資源的例子。μC/GUI使用宏GUI_USE在訪問顯示屏之前或使用一個臨界內(nèi)部數(shù)據(jù)之前調(diào)用GUI_Use(GUI_Unuse()。這在模塊GUITask.c中實(shí)現(xiàn)。GUITask.cGUIGUI_X_,因為它GUI(阻塞資源“旗語/互斥GUI(解鎖資源“旗語/互斥voidU32返回哪個數(shù)值沒有關(guān)系,只要對于每個使用μC/GUIAPIvoidGUIvoid用于μC/OS-IIII.c:#includestaticOS_EVENT*U32{}void{DispSem=}void{}void{INT8Uerr;OSSemPend(DispSem,0,&err);} μC/GUI多任務(wù)接口,用于 staticHANDLEhMutex;voidGUI_X_InitOS(void){hMutex=CreateMutex(NULL,0,“μC/GUISim-}unsignedint{retu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語言文字使用規(guī)范化管理制度
- 2025屆高考日語復(fù)習(xí) 動詞用法(全) 課件
- 小學(xué)各學(xué)段銜接方案
- 幼兒園小朋友自己回家安全協(xié)議書
- 銀行間同業(yè)拆借利率互換交易合同
- N-Acetylneuraminic-acid-2-4-7-8-9-pentaacetate-生命科學(xué)試劑-MCE
- 公共英語(三級)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 物理3 李學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- MS182-生命科學(xué)試劑-MCE
- Minnelide-free-base-生命科學(xué)試劑-MCE
- DB11T 1359-2016 平原生態(tài)公益林養(yǎng)護(hù)技術(shù)導(dǎo)則
- 預(yù)防校園欺凌主題班會課件(共36張課件)
- 公關(guān)服務(wù)合同
- 鄉(xiāng)村(社區(qū))后備干部考試卷及答案
- 五年級上冊數(shù)學(xué)小數(shù)和整數(shù)相乘課件蘇教版
- 江蘇省蘇州市2024-2025學(xué)年七年級上學(xué)期期中數(shù)學(xué)摸底調(diào)研卷
- GB/T 44352-2024燃油蒸發(fā)排放系統(tǒng)用活性炭通用要求
- 2024山東濟(jì)南軌道交通集團(tuán)限公司招聘49人高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- “數(shù)字三品”應(yīng)用場景典型案例申報書
- 5.2 城鎮(zhèn)與鄉(xiāng)村(教學(xué)設(shè)計)七年級地理上冊同步高效備課課件(人教版2024)
- 一 我有一個夢想(教學(xué)設(shè)計)2023-2024學(xué)年道德與法治(學(xué)生讀本)低年級
評論
0/150
提交評論