<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 圖解UCGUI3.90實(shí)現GIF動(dòng)畫(huà)顯示全過(guò)程

圖解UCGUI3.90實(shí)現GIF動(dòng)畫(huà)顯示全過(guò)程

作者:areak 時(shí)間:2015-04-09 來(lái)源:電子產(chǎn)品世界 收藏

  uc/GUI嵌入式圖形系統不依賴(lài)于,可以輕松在中高端微控制器上移植成功,具體的移植過(guò)程網(wǎng)上已經(jīng)有很多,按照步驟來(lái)大多能成功。目前來(lái)說(shuō)實(shí)現雖然uc/gui3.90并不是最新的版本,但卻是入門(mén)使用的不二選擇,是比較經(jīng)典的版本,網(wǎng)上的教程也較多,適合新手學(xué)習。

本文引用地址:http://dyxdggzs.com/article/272288.htm

  uc/GUI3.98版本中實(shí)現了GIF動(dòng)畫(huà)顯示,比較有意思,但是3.90版本里面并沒(méi)有實(shí)現此功能,今天就一步步教你在ucGUI3.90版本中實(shí)現GIF動(dòng)畫(huà)顯示。

  一、 準備工作

  首先準備好一個(gè)工程,要求工程已經(jīng)實(shí)現了UCOS-II和3.90的移植。

  下載3.98版本。

  根據你所選擇的液晶的大小,到網(wǎng)上下載一個(gè)GIF圖片,在百度圖片里面有很多。

  二、 GIF圖片數據提取

  在ucgui3.90的下載包里面,有一個(gè)tool文件夾,里面有一些小工具,這里我們要用到的是Bin2C.exe。雙擊打開(kāi)。如下圖所示,選擇select file,找到你下載的GIF圖片,然后點(diǎn)擊Convert進(jìn)行數據轉換,轉換出來(lái)的是一個(gè).C文件,里面是一個(gè)數組,比較大,存儲了GIF圖片的信息。

  下圖是轉換出來(lái)的數據,注意看這個(gè)數組的第6、7位和第8、9位,第6、7位值為0X40、0X01,代表的是圖片的寬度是320個(gè)像素點(diǎn),也就是0x0140,轉換成十進(jìn)制就是320,同理8、9位是高度信息,0X01E0是480。有的時(shí)候在網(wǎng)上找到的圖片信息并不準確,所以要以轉換出來(lái)的數據為準。

  三、 移植

  之前已經(jīng)說(shuō)過(guò)了,3.90版本不支持GIF解碼,所以我們要把3.98版本里面與GIF相關(guān)的部分移植過(guò)來(lái)。

  在3.98版本目錄: uC-GUI3.98StartGUICore下找到GUI_Gif.c文件。復制到3.90的該目錄下。

  在目錄: uC-GUI3.98SampleGUI下面已經(jīng)給我們提供了一個(gè)官方例程,

  把這個(gè)文件添加到我們的工程當中。

  然后你會(huì )發(fā)現MDK會(huì )報錯,因為有一些和GIF相關(guān)的結構體類(lèi)型及函數是未被定義的,在GUI.h頭文件中添加如下聲明。

  在GUIType.h中添加如下定義

  再然后調用2DGL_DrawGif.C里面的MainTask()函數,就可以看到效果了。

  四、 顯示自己的GIF圖片

  把你自己生成的GIF數據復制出來(lái)替換2DGL_DrawGif.C里面的數組可以顯示,但是有事圖片數據很多,數組很大,放在文件里面不便于管理,所以我們直接把生成的.C文件添加到工程當中,

  當然這樣加進(jìn)來(lái)還不行,

  還要在2DGL_DrawGif.C 文件中聲明外部數組,

  extern unsigned const char gif_dat_1[];

  因為數組較大,所以我們無(wú)法事先確定數組的大小,但是函數

  _ShowMovie(*p,length);的第二個(gè)參數要求我們傳遞數組的大小,所以我們需要處理一下,在gif_dat.c里面定義一個(gè)全局變量

  long gif_dat1_len=sizeof(gif_dat_1);

  然后在2DGL_DrawGif.C中聲明一下。

  extern long gif_dat1_len;

  OK!!!大功告成!!!上個(gè)圖。

  說(shuō)明:MainTask()函數里面的_ShowComments(),_ShowSubImages()這兩個(gè)函數用不到可以屏掉。

  還有_ShowMovie(const char * pFile, long FileSize)函數可能還需要你根據實(shí)際情況適當修改。這個(gè)就自己來(lái)吧,祝你好運!!!



關(guān)鍵詞: uc/os UCGUI

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>