打印
[应用相关]

关于EMWIN的移植简要说明

[复制链接]
2999|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shizaigaole|  楼主 | 2019-2-12 08:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MWIN的移植具体步骤可以参考《emWin5中文手册》配置章节,里面有比较详细的步骤。

            移植有两种方法,一种是EMWIN提供了驱动接口,用户只需要提供读写显示RAM寄存器的函数即可,主要的函数是:

void LCD_X_Config(void) {
       
        unsigned short lcd_width,lcd_height;
        unsigned char  dir_flag;
       
                GUI_DEVICE * pDevice;
                CONFIG_FLEXCOLOR Config = {0};
                GUI_PORT_API PortAPI = {0};
               
                dir_flag = 1;                //横竖屏幕切换标志
               
                if(dir_flag == 0)
                {
                        lcd_width = XSIZE_PHYS;
                        lcd_height = YSIZE_PHYS;
                }
                else
                {
                        lcd_width = YSIZE_PHYS;
                        lcd_height = XSIZE_PHYS;
                }
               
                pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);        //GUIDRV_FLEXCOLOR表示使用标准接口
                GUIDRV_FlexColor_SetReadFunc66720_B16(pDevice, GUIDRV_FLEXCOLOR_READ_FUNC_II); //使用EMWIN提供的SS1963驱动
               
                LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
                LCD_SetVSizeEx(0, XSIZE_PHYS, YSIZE_PHYS);

                       
                if(dir_flag==1)
                {
                  GUI_TOUCH_SetOrientation(GUI_SWAP_XY|GUI_MIRROR_X);       
                }
                GUI_TOUCH_Calibrate(GUI_COORD_X, 0, lcd_width, TOUCH_LEFT, TOUCH_RIGHT);
                GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, lcd_height, TOUCH_TOP, TOUCH_BOTTOM);
               
               
                //Config.FirstCOM = 0; //modify by fire
    //Config.FirstSEG = 0; //modify by fire
                //Config.NumDummyReads = 2;                //²»¼ÓÕâÒ»Ò»¾ä£¬¹â±êÏÔʾ»áÓÐÍÏÓ°ÎÊÌâ
               
                if(dir_flag==1)
                {
                  Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_X;
                }
                GUIDRV_FlexColor_Config(pDevice, &Config);
               
                    //用户需要提供的4个函数
                PortAPI.pfWrite16_A0  = LCD_WR_REG;
                PortAPI.pfWrite16_A1  = LCD_WR_Data;
                PortAPI.pfWriteM16_A1 = LCD_WR_M_Data;
                PortAPI.pfReadM16_A1  = LCD_RD_M_Data;
                GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66720, GUIDRV_FLEXCOLOR_M16C0B16);
}

可以看到这个函数主要设置,屏幕尺寸,根据用户LCD型号选择对应的驱动,提供4个最基础的读写寄存器以及读写数据的函数。


第二种方法是自己写驱动,主要 区别是:

GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);

其中:
#define DISPLAY_DRIVER  &GUIDRV_Template_API

const GUI_DEVICE_API GUIDRV_Template_API = {

  DEVICE_CLASS_DRIVER,

  _DrawBitmap,
  _DrawHLine,
  _DrawVLine,
  _FillRect,
  _GetPixelIndex,
  _SetPixelIndex,
  _XorPixel,
  
  _SetOrg,

  _GetDevFunc,
  _GetDevProp,
  _GetDevData,
  _GetRect,
};
由用户自己提供了一些 _DrawBitmap,。。。。_GetPixelIndex,_SetPixelIndex,_XorPixel函数.
据网络资料上说,只提供打点函数也可!!

这种移植以安富莱为代表,有一点要注意,安富莱的移植,把触摸部分也移植了,由用户自己提GUI_PID_StoreState(&State); 函数的State数据,搞得太复杂了,有点不让用户自己消化的意思,好让用户绑定到他的平台中。
沙发
mmuuss586| | 2019-2-25 08:13 | 只看该作者
不错,感谢分享

使用特权

评论回复
板凳
guanjiaer| | 2019-3-3 12:34 | 只看该作者
不会自己写驱动啊

使用特权

评论回复
地板
heimaojingzhang| | 2019-3-3 12:42 | 只看该作者
楼主介绍的很详细

使用特权

评论回复
5
keaibukelian| | 2019-3-3 12:53 | 只看该作者
这个跟硬件变更有关系吗

使用特权

评论回复
6
labasi| | 2019-3-3 13:02 | 只看该作者
总结的很到位

使用特权

评论回复
7
paotangsan| | 2019-3-3 13:16 | 只看该作者
这个是用来跑系统的吗

使用特权

评论回复
8
renzheshengui| | 2019-3-3 13:44 | 只看该作者
这本书是哪里出的啊

使用特权

评论回复
9
51xlf| | 2019-3-3 16:20 | 只看该作者
完整的工程文件有吗?           

使用特权

评论回复
10
i1mcu| | 2019-3-3 16:20 | 只看该作者
图形LCD设计提供高级支持  

使用特权

评论回复
11
pmp| | 2019-3-3 16:21 | 只看该作者
驱动接口都是直接调用的吗

使用特权

评论回复
12
mmbs| | 2019-3-3 16:22 | 只看该作者
《emWin5中文手册》有说明   

使用特权

评论回复
13
1988020566| | 2019-3-3 16:23 | 只看该作者
怎么校正呢?LCD坐标问题   

使用特权

评论回复
14
pmp| | 2019-3-3 16:23 | 只看该作者
支持多大刷新速度呢?         

使用特权

评论回复
15
i1mcu| | 2019-3-3 16:23 | 只看该作者
有相关的视频教程?              

使用特权

评论回复
16
51xlf| | 2019-3-3 16:23 | 只看该作者
主要是硬件的接口设计。            

使用特权

评论回复
17
1988020566| | 2019-3-3 16:23 | 只看该作者
校正是内部的代码吗?     

使用特权

评论回复
18
mmbs| | 2019-3-3 16:23 | 只看该作者
应该有很多的官网的例程可以参考  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:衰兰送客咸阳道,天若有情天亦老

146

主题

3727

帖子

11

粉丝