你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

UCGUI移植总结

[复制链接]
songruimin 发布时间:2018-5-18 16:57
1. 首先要先把LCD 的驱动写好,能够正常显示 这个驱动程序一般买控制器的时候 厂家就会给的。
2. 加入UCGUI程序包(工程里面的程序必须用同一版本的ucfui版本)
3. 配置LCDConfig.h 文件
   需要包含LCD驱动程序头文件
   修改以下几点
   根据实际的LCD 像素大小而设置
a. #define LCD_XSIZE          (160)    //配置TFT的水平分辨率
b. #define LCD_YSIZE          (128)    //配置TFT的垂直分辨率
c. #define LCD_CONTROLLER     (54124)  //TFT控制器的名称//有一些LCD控制器可以这样直接调用数字具体的  
                                         型号在手册379页里面。                                         
  但是RA8875 就不用这个定义
d. #define LCD_BITSPERPIXEL   (16)     //每个像素的位数
e. #define LCD_FIXEDPALETTE   (565)    //调色板格式
f. #define LCD_SWAP_RB         (1)      //红蓝反色交换
g. #define LCD_INIT_CONTROLLER()   TFT_Init() ; //这里定义屏的初始化函数   
//此处需要定义的是你的实际TFT初始化函数(来自于LCD驱动程序里面定义)这是最重要的
4. 配置GUIConf.h文件 修改一下几点:
  #define GUI_OS                  (1)   //说明工程用到了多任务(ucos)
  #define GUI_SUPPORT_TOUCH       (0)   //是否使用触摸
  #define GUI_SUPPORT_UNICODE     1)   //Unicode支持
  #define GUI_DEFAULT_FONT   &GUI_Font6x8//GUI默认字体(初始化GUI不修改字体大小就默认为这个字体)
  #define GUI_ALLOC_SIZE          5000   //动态内存的大小
  #define GUI_WINSUPPORT          1   //窗口控件支持
  #define GUI_SUPPORT_MEMDEV      1   //支持内存设备
  #define GUI_SUPPORT_AA          1   /* Anti aliasing available *///不懂?
5. 如何让GUI可以自动找到LCD底层驱动函数这就需要修改LCDConf.h文件来修改液晶接口函数
  LCD 底层驱动程序需要含有设置一个像素函数和获取一个像素的颜色函数:
     这是原来液晶驱动的程序:
      void LCD_SetPixel(unsigned short x, unsigned short y, unsigned shortcolor) //设置某个点的颜色
      unsigned short LCD_GetPixel(unsigned short x, unsigned short y)  // 画点函数
      现将LCD驱动程序的一些函数名称换成UCGUI标准名称的函数
   int LCD_L0_Init(void)
     {      
         TFT_Init();
         return 0;
     }
    这个函数是GCGUI初始化TFT需要调用的,里面的函数就是你TFT底层驱动的初始化函数。
   void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)
    {
      LCD_SetPixel(x,y,PixelIndex);
    }
   unsigned int LCD_L0_GetPixelIndex(int x, int y)
    {
       return LCD_GetPixel(x,y);
    }
最好用define  重新定义一下
即:  #define   LCD_L0_SetPixelIndex(int x, int y, intPixelIndex)  LCD_SetPixel(x,y,PixelIndex);
     #define   unsigned intLCD_L0_GetPixelIndex(int x, int y)     LCD_GetPixel(x,y)
8875GUI
在文件GUIDV_Template.c 里面有函数
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg
file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image004.jpg
这样GUI的所有函数都可以使用8875的底层函数了
以下写带有触摸的移植要点
GUITouchConf.h 文件里面写
#define GUI_TOUCH_SWAP_XY       0
#define GUI_TOUCH_MIRROR_X      1
#define GUI_TOUCH_MIRROR_Y      1//我觉得这就是说XY 值是否交换  但是看不懂
#define GUI_TOUCH_AD_LEFT      350//3601//最左侧xAD转换值//当换液晶的时候 需要改这里
#define GUI_TOUCH_AD_RIGHT     3200//393//最右侧xAD转换值
#define GUI_TOUCH_AD_TOP       600//273//最上侧yAD转换值
#define GUI_TOUCH_AD_BOTTOM    2800 //3671//最下侧yAD转换值
/ v: A& c2 |; [" Z2 _7 l! h2 g; @
收藏 1 评论5 发布时间:2018-5-18 16:57

举报

5个回答
GKoSon 回答时间:2018-5-20 12:11:14
支持 最近接到任务 搞一个3.5寸的TFT屏幕
6 H$ Q2 n& U$ u# v可能要学这个了
lospring 回答时间:2018-5-21 08:18:31
努力学习,支持一下。刚开始接触
zero99 回答时间:2018-5-22 14:13:31
谢谢分享啦
heyv11 回答时间:2018-6-7 21:54:17
支持一下
zfz9232 回答时间:2018-7-13 15:52:27
mark mark两下
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版