移植基于正点原子1.3寸SPI显示屏,驱动芯片为ST7789,使用STM32Cube+STM32CubeIDE+STemWin。

1.新建STM32Cube工程,选择STM32H750VB

2.时钟配置如下图,我选用的是25MHz无源晶振

3.设置SPI接口和其它引脚,注意Clock Parameters设置

注意上面的引脚速度不能设置为High。

4.设置其它引脚,并打开CRC。

5.工程设置如下图,生成工程并打开。

6.打开\STM32Cube\Repository\STM32Cube_FW_H7_V1.9.1\Middlewares\ST文件夹,将STemWin复制到工程中。

7.打开该文件夹,对文件进行裁剪。首先删掉这四个文件

8.删除Config下的这三个文件.

9.lib中只保留STemWin_CM7_wc16_ARGB.a文件

10.OS中保留GUI_X.c文件

11.工程设置中,C/C++General -> Paths and Symbols -> Source Location添加STemWin文件夹(Add Folder)。 

12.在C/C++ Build中的Settings,MCU GCC Compiler添加STemWin的四个路径。

13.添加库链接,注意库名称前加:

14.删除LCD_Private.h和LCD_ConfDefaults.h中的    #include "LCDConf.h"

15.修改GUIConf.c中的#define GUI_NUMBYTES  1024*50

16.至此,编译应能通过,略掉LCD的基础移植。

17.修改GUIConf.h

#define GUI_NUM_LAYERS            1  #ifndef   GUI_SUPPORT_TOUCH#define GUI_SUPPORT_TOUCH       (0)  // Support touchscreen
#endif#define GUI_SUPPORT_MOUSE             (0)    /* Support a mouse */
#define GUI_WINSUPPORT                (1)    /* Use window manager */
#define GUI_SUPPORT_MEMDEV            (0)    /* Memory device package available */
#define GUI_SUPPORT_DEVICES           (0)    /* Enable use of device pointers */

18. 修改GUIDRV_Template.c中的下列函数,添加LCD_Draw_ColorPoint(x,y,PixelIndex);函数

static void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, int PixelIndex) {//// Convert logical into physical coordinates (Dep. on LCDConf.h)//#if (LCD_MIRROR_X == 1) || (LCD_MIRROR_Y == 1) || (LCD_SWAP_XY == 1)int xPhys, yPhys;xPhys = LOG2PHYS_X(x, y);yPhys = LOG2PHYS_Y(x, y);#else#define xPhys x#define yPhys y#endifGUI_USE_PARA(pDevice);GUI_USE_PARA(x);GUI_USE_PARA(y);GUI_USE_PARA(PixelIndex);{//// Write into hardware ... Adapt to your system//// TBD by customer...//LCD_Draw_ColorPoint(x,y,PixelIndex);}#if (LCD_MIRROR_X == 0) && (LCD_MIRROR_Y == 0) && (LCD_SWAP_XY == 0)#undef xPhys#undef yPhys#endif
}

19.修改LCDConf_FlexColor_Template.c文件,注意LCD_X_Config只保留三行,并修改&GUIDRV_Template_API


#include "GUI.h"
#include "GUIDRV_FlexColor.h"/*********************************************************************
*
*       Layer configuration (to be modified)
*
**********************************************************************
*///
// Physical display size
//
#define XSIZE_PHYS  240 // To be adapted to x-screen size
#define YSIZE_PHYS  240 // To be adapted to y-screen sizevoid 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_Template_API, 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;
//  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);
}

STM32H750移植STemWin,驱动ST7789相关推荐

  1. 超详细!!!STM32F407ZGT6HAL库移植STemwin(基于正点原子最小系统板+GUIBuilder)

    第一次写博客,我以为会是点灯的,没想到留给了GUI,但是第一次写,可能写的不够好欢迎大家批评指正. 最近由于比赛的要求,需要给自己的LCD设计GUI界面,在查了一些资料后,决定先学STemwin然后学 ...

  2. ST7701芯片820*320屏幕移植stemwin

    简要说明 如题,公司最近更换820*320屏幕,移植stemwin,使用3线spi通讯+16RGB,这屏幕工作流程为:首先通过3线spi发送初始化指令,之后通过16bitRGB发送像素点. 移植过程参 ...

  3. 玩转RT-Thread系列教程(6)--移植STemwin

    玩转RT-Thread系列教程(6)–移植STemwin 一.STemwin介绍 在实际应用中我们时常需要制作 UI 界面来实现人机交互,简单的 UI 我们可以自己直接写代码,但是对于那些复杂的交互方 ...

  4. stm32使用自定义打点函数方式移植stemwin

    stm32使用自定义打点函数方式移植stemwin 背景 显示过程 移植简述 打点函数 stemwin移植要点 实物效果 背景 oled屏移植stemwin,有两种方式,通过自定义打点方式进行移植,或 ...

  5. 【Linux高级驱动】如何分析并移植网卡驱动

    dm9000的驱动分析 m9000_init  platform_driver_register(&dm9000_driver); dm9000_probe  /*获取平台数据*/  stru ...

  6. LoRa 之一 旧版驱动(sx12xxDrivers-V2.1.0)移植及驱动架构详解

      在之前的项目中,一直使用 LoRa 通信.很早之前就想写写文章记录一下学习过程.怎奈一直是一知半解的状态,想写不敢写!LoRa 这个东西在国内用的貌似不是太多.   对于无线通信,各个国家或者地区 ...

  7. Android系统移植与驱动开发概述

    1.Android系统架构分为四层:linux内核,Android是基于linux内核的. c/c++代码库,包括C/C++编写的代码库,包括dalivk虚拟机的运行时. Android SDK AP ...

  8. 1Android系统移植与驱动开发概述

    1.Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库.Android SDK API.应用程序,要熟悉每一层的内容以及功能: 2.Android移植分为应用移植和系统移 ...

  9. 基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九)

    作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...

  10. linux内核epub,Android底层开发技术实战详解——内核、移植和驱动(第2版)[EPUB][MOBI][AZW3][42.33MB]...

    内容简介 本书从底层原理开始讲起,结合真实的案例向读者详细介绍了Android内核.移植和驱动开发的整个流程.全书分为21章,依次讲解驱动移植的必要性, Goldfish.OMAP内核和驱动解析,显示 ...

最新文章

  1. cmder tips
  2. asp.net读取xml方法
  3. javaBean和jsp应用
  4. 《快学Scala》勘误
  5. 管理R包——Pacman包介绍
  6. k2pdfopt教程
  7. matlab相机标定畸变参数,相机标定的原理与意义及OpenCVMatlab实现差异小结.doc
  8. linux安装telnet客户端_Redis 6.0 的客户端缓存是怎么肥事?一文带你了解!
  9. java 泛型的类型擦除和桥方法
  10. 2020-10-13
  11. word打开文档很久很慢_word打开慢,教您怎么解决word打开慢
  12. php 跨域提交,php实现跨域提交form表单的方法
  13. 快递单号查询api接口对接
  14. 祝朋友生日前程似锦的句子:愿未来锦上添花
  15. 【Linux】解决Centos软件安装源出错
  16. Python把视频转为 gif 图片——视频制作利器:MoviePy
  17. 无人机斜影(倾斜摄影)数据(OSGB)转 Cesium 3dtile 数据归纳总结以及亲测可用示例
  18. 紫外线杀菌器:紫外线杀菌的原理分析
  19. DFRobot行业AI开发者大赛--LattePandaDelta
  20. 河南工业大学高级JAVA实验,大学_计算机控制技术实验报告河南工业大学4

热门文章

  1. python黑魔法指南_python黑魔法
  2. 宝塔面板的数据库地址配置
  3. 手把手教你如何架设一个属于自己的Discuz论坛---------详细过程-----简单易懂------速看!!!!
  4. 从零开始的单片机学习(二)
  5. Cipher的初应用
  6. 传智播客学习日记Day9
  7. Doom3 引擎渲染管线分析
  8. ANS.1的基础总结
  9. 计算功耗设备待机时间!
  10. R语言使用pROC包的的plot.roc函数对单变量进行ROC分析并可视化ROC曲线、寻找最佳阈值(threshold、cutoff)、在可视化曲线中添加最佳阈值点