<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          stm32之uCGUI移植

          作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
          聲明:本教程是作者學習uCGUI過程中的筆記,最后整理出來,獻給初學者,旨在帶領(lǐng)初學者入門uCGUI,僅供學習之用,不得用于商業(yè)。如需轉(zhuǎn)載,請注明出處。

          本文引用地址:http://www.ex-cimer.com/article/201611/321348.htm

          說明

          平臺: stm32f103zet6

          TFTLCD型號: 2.8寸9341控制器

          ucgui源碼: 3.90a版本

          觸屏: 不帶觸屏(后續(xù)更新)

          操作系統(tǒng): 不支持

          移植教程

          一、準備工作:

          (一) 源碼:準備3.90版本的UCGUI源碼

          注:如果需要跑GUIDEMO,那么還需準備GUIDEMO源碼。

          (二) LCD底層驅(qū)動:準備LCD屏的底層驅(qū)動,接口函數(shù)如下:

          1、 設(shè)置坐標點;

          static void lcd_set_cursor(u16 xpos, u16 ypos);

          2、 在指定點畫指定顏色的點;

          void lcd_set_point(u16 xpos, u16 ypos, u16 color);

          3、 讀取某個點的顏色值;

          u16 lcd_get_point(u16 x, u16 y);

          4、 在指定區(qū)域填充顏色(開窗口的方式,速度更快);

          void lcd_window_fill(u16 sx, u16 sy, u16 ex, u16 ey, u16 color);

          5、 LCD屏初始化(主要是出廠初始化代碼);

          void ili9341_initialize(void);

          注:這里列出了和UCGUI的接口函數(shù),這些函數(shù)的具體實現(xiàn)需要根據(jù)自己的LCD屏具體實現(xiàn)這些函數(shù)。

          二、 移植過程

          (一) 把UCGUI源碼copy到自己的工程中,UCGUI文件夾下面,方便管理;

          (二) 添加UCGUI源碼到工程中,放在對應(yīng)的組下面,方便管理,如圖:

          (三) 添加頭文件路徑,如圖:

          (四) 打開GUI_Config文件夾,編輯GUIConf.h文件,內(nèi)容如下:
          #define GUI_OS (0)
          #define GUI_SUPPORT_TOUCH (0)
          #define GUI_SUPPORT_UNICODE (1)
          #define GUI_DEFAULT_FONT &GUI_Font6x8
          #define GUI_ALLOC_SIZE 40*1024
          #define GUI_WINSUPPORT0
          #define GUI_SUPPORT_MEMDEV 1
          #define GUI_SUPPORT_AA 1

          (五) 打開GUI_Config文件夾,編輯LCDConf.h文件,內(nèi)容如下:
          #define LCD_XSIZE (320)
          #define LCD_YSIZE (240)
          #define LCD_BITSPERPIXEL (16)
          #define LCD_CONTROLLER (-1)
          #define LCD_FIXEDPALETTE (565)
          #define LCD_SWAP_RB (1)
          #define LCD_INIT_CONTROLLER() ili9341_initialize();

          (六) 打開GUI_LCDDriver文件夾,編輯LCDDummy.c文件,內(nèi)容如下:

          1、 先添加LCD驅(qū)動文件的頭文件,以便下面函數(shù)調(diào)用;如:#include "tftlcd.h"

          2、 確保 #if (LCD_CONTROLLER == -1)
          && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))
          中的 LCD_CONTROLLER == -1 ,和LCDConf.h中的宏定義對應(yīng)

          3、 在 void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex) 函數(shù)最后一行添加如下語句:
          lcd_set_point(xPhys, yPhys, PixelIndex);

          4、 在 unsigned int LCD_L0_GetPixelIndex(int x, int y) 函數(shù) return語句之前添加如下語句:
          PixelIndex = lcd_get_point(x, y);

          5、 現(xiàn)在回到main函數(shù)

          1) 添加頭文
          #include "GUI.h"
          #include "GUIDEMO.h"

          2) 在main函數(shù)中先調(diào)用必要的初始化函數(shù)后,再調(diào)用GUI_Init(); 函數(shù),這個函數(shù)會調(diào)用LCD屏的初始化函數(shù)

          3) 為了測試UCGUI是否初始化成功,我們先調(diào)用幾個函數(shù)試試,在GUI_Init();下面接著調(diào)用如下函數(shù):
          GUI_SetBkColor(GUI_BLACK);
          GUI_SetColor(GUI_RED);
          GUI_Clear();
          GUI_SetFont(&GUI_Font24_1);
          GUI_DispStringAt("- - uCGUI disp Function sample - -",4,10);
          // 延時3s,方便觀看結(jié)果
          delay_ms(1000);
          delay_ms(1000);
          delay_ms(1000);
          看看是否把LCD刷成黑色,是否顯示紅色字符串

          4) 然后再while循環(huán)中調(diào)用 GUIDEMO_main(); 函數(shù),開始運行GUIDEMO


          上一頁 1 2 下一頁

          關(guān)鍵詞: stm32uCGUI移

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();