STM32 移植 STemwin
移植STemwin
平台STM32F429+LTDC+SDRAM
其实不难就是给自己做个记录,年纪大了记性不好。。。
-
自己先驱动好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)
LCDConf_FlexColor_Template.c里面
修改屏幕尺寸
#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 codevoid 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。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
