STM32F407上移植emwin

               


STM32F407上移植emwin


本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.


环境:

主机:WIN8

开发环境:MDK5.13

emwin版本:STemWinLibrary522

mcu: stm32f407VGT6

开发板:安富莱STM32-X3

TFT型号:艾蓝2.8寸TFT,主控芯片:ILI9325


说明:

在STM32F407上移植emwin,驱动屏幕接口为FSMC


移植步骤:

1.MDK新建文件结构:

2.GUIConf.c文件修改

    a)增加宏定义:

#define GUI_NUMBYTES  (1024 * 80)#define GUI_BLOCKSIZE 0x80

  b)GUI_X_Config(void)函数中增加语句:

GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);

   修改后:

/***********************************************************************       GUI_X_Config** Purpose:*   Called during the initialization process in order to set up the*   available memory for the GUI.*/void GUI_X_Config(void) //  // 32 bit aligned memory area  //  static U32 aMemory[GUI_NUMBYTES / 4];  //  // Assign memory to emWin  //  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);  GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);  //  // Set default font  //  GUI_SetDefaultFont(GUI_FONT_6X8);}


3.LCDConf_FlexColor_Template.c文件修改

    a)增加宏定义:

#define LCD_REG_ADDRESS            BANK1_LCD_REG#define LCD_DATA_ADDRESS           BANK1_LCD_RAM

      这两个BANK宏定义在tft驱动文件中定义:

#define BANK1_BASE  ((uint32_t)(0x60000000 | 0x00000000))#define BANK1_LCD_RAM *(__IO uint16_t *)(BANK1_BASE +  (1 << (18 + 1))) /* FSMC 16位总线模式下,FSMC_A18口线对应物理地址A19 */#define BANK1_LCD_REG *(__IO uint16_t *)(BANK1_BASE)

       具体值和接线相关


     b)具体函数修改

/***********************************************************************       Local functions************************************************************************//**********************************************************************       LcdWriteReg** Function description:*   Sets display register*/static void LcdWriteReg(U16 Data) // ... TBD by user LCD_REG_ADDRESS = Data;}/**********************************************************************       LcdWriteData** Function description:*   Writes a value to a display register*/static void LcdWriteData(U16 Data) // ... TBD by user LCD_DATA_ADDRESS=Data;}/**********************************************************************       LcdWriteDataMultiple** Function description:*   Writes multiple values to a display register.*/static void LcdWriteDataMultiple(U16 * pData, int NumItems) while (NumItems--) {    // ... TBD by user   LCD_DATA_ADDRESS=*pData++;  }}/**********************************************************************       LcdReadDataMultiple** Function description:*   Reads multiple values from a display register.*/static void LcdReadDataMultiple(U16 * pData, int NumItems) while (NumItems--) {    // ... TBD by user   *pData++=LCD_DATA_ADDRESS;  }}/***********************************************************************       Public functions************************************************************************//***********************************************************************       LCD_X_Config** Function description:*   Called during the initialization process in order to set up the*   display driver configuration.**/void LCD_X_Config(void) {  GUI_DEVICE * pDevice;  CONFIG_FLEXCOLOR Config = {0};  GUI_PORT_API PortAPI = {0};  //  // Set display driver and color conversion  //  pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);  //  // Display driver configuration, required for Lin-driver  //  LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);  LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);  //  // Orientation  //  //Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_Y;  Config.FirstCOM = 0;  Config.FirstSEG = 0//Config.Orientation = GUI_MIRROR_X | GUI_MIRROR_Y;  Config.NumDummyReads = 2;  GUIDRV_FlexColor_Config(pDevice, &Config);  //  // Set controller and operation mode  //  PortAPI.pfWrite16_A0  = LcdWriteReg;  PortAPI.pfWrite16_A1  = LcdWriteData;  PortAPI.pfWriteM16_A1 = LcdWriteDataMultiple;  PortAPI.pfReadM16_A1  = LcdReadDataMultiple;  GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16); //GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16);}

      其中:GUIDRV_FlexColor_SetFunc函数说明:

     

猜你喜欢

转载自blog.csdn.net/qq_44925357/article/details/89788326