- 自己先驱动好TFTLCD, LTDC, SDRAM等
- 开启硬件CRC.
- Cubemx配置增大堆栈大小,不然容易出错

- 需要添加以下文件进行配置

- 挨个文件配置
GUIConf.c里面主要修改ram大小,酌情而定,不宜太大。
#define GUI_NUMBYTES (1024)*50
GUIDRV_Template.c里面修改以下函数TBD by customer部分添加画点,读点,填充函数
static void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, int PixelIndex) static unsigned int _GetPixelIndex(GUI_DEVICE * pDevice, int x, int y) static void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1)
#define XSIZE_PHYS 320 // To be adapted to x-screen size #define YSIZE_PHYS 480 // To be adapted to y-screen size
修改LCD_X_Config函数
void LCD_X_Config(void) { GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0); LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS); LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS); }
修改LCD_X_DisplayDriver函数,添加LCD初始化函数
int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) { int r; (void) LayerIndex; (void) pData; switch (Cmd) { case LCD_X_INITCONTROLLER: { TFT_ini(); return 0; } default: r = -1; } return r; }
stm32f4xx_it.c函数中修改增加
extern __IO int32_t OS_TimeMS;//add this code void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ OS_TimeMS++; //add this code /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ }
- GUIbuilder设计窗口,对话框

- main.c添加以下代码
#include "GUI.h" #include "WM.h"
WM_SetCreateFlags(WM_CF_MEMDEV); WM_HWIN hDlg; GUI_Init(); hDlg=CreateWindow();
while (1) { GUI_Delay(100); }
- 运行结果

先到这儿,下阶段再写Touch。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227706.html原文链接:https://javaforall.net
