首先,去ST官网,或者KEIL安装目录下面找到STEMWIN的相关驱动文件。

 

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关

在工程里面添加相关文件,文件位置,后面提供,头文件自己添加

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_02

各文件地址在:注意路径

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_03

其中的lcdconf是改了名字的,原名如下;

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_04

GUI_X.C

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_05

开始修改代码,改界面大小,我是OLED12864

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_06

#define XSIZE_PHYS  128 // To be adapted to x-screen size

#define YSIZE_PHYS  64 // To be adapted to y-screen size

 

改设置,这里有一大堆,都删了,改成下面这样

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_07

void LCD_X_Config(void) {


  //
  // Set display driver and color conversion
  //
  GUI_DEVICE_CreateAndLink(GUIDRV_TEMPLATE, GUICC_1, 0, 0);
  //
  // Display driver configuration, required for Lin-driver
  //
  LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
  LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);

 

}

 

申请内存空间

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_08

#define GUI_NUMBYTES  1024*40

提供打点函数

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_09

OLED_Display_Data[y>>3][x] |= PixelIndex << (y%8); 

使能CRC校验,不然可能会在初始化的时候进入错误中断

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_10

__HAL_RCC_CRC_CLK_ENABLE();

做测试代码

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_11

GUI_Init();
  GUI_DispString("Hello world!");

实物效果

STM32F446+OLED12864实现STEMWIN_屏幕及GUI相关_12