你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 使用hal+spi驱动st7789中景园屏幕

[复制链接]
STMCU小助手 发布时间:2023-2-6 15:39
1.开发介绍:
硬件是中景园1.47英寸 172*320 屏幕
stm32h750
是用stm32cubemx+hal库
开发环境 vscode+eide
编译器 ARMCC6
屏幕引脚定义:
U340}6DQ(0IWDJVPZ@A309O.png

2.cubemx配置
stm32H7时钟配置

7fa890417f9742b1bdb2133f1ca89bae.png

实测30MBITS能够正常显示,60MBITS就不行了

9e86bd6f7f0348f881b83b240b1f7d18.png

定义相关IO输出:

5d9df8e4910241c0bf2d711965bce69d.png

3.注释事项

源码基础中景园例程修改,主要修改内容可以往下看

原例程使用软件spi
我在保留原有软件spi的基础上加入硬件spi,使用宏定义HW_SPI进行修改
  1. // SW_SPI or HW_SPI or HW_SPI_DMA  (HW_SPI_DMA暂时还用不了,相关代码还没写)
  2. #define HW_SPI
复制代码

对相关GPIO进行了封装重写
  1. //==========================================
  2. //GPIO-重写
  3. //==========================================
  4. #define LCD_RES_GPIO        GPIOC
  5. #define LCD_RES_GPIO_PIN    GPIO_PIN_4
  6. #define LCD_DC_GPIO         GPIOC
  7. #define LCD_DC_GPIO_PIN     GPIO_PIN_5
  8. #define LCD_CS_GPIO         GPIOB
  9. #define LCD_CS_GPIO_PIN     GPIO_PIN_0
  10. #define LCD_BLK_GPIO        GPIOB
  11. #define LCD_BLK_GPIO_PIN    GPIO_PIN_1
复制代码

用户还需要修改初始化部分代码,主要是不同屏幕初始化不同,和硬件有关,具体要看厂家初始化代码
初始化函数为
  1. void LCD_Init(void);//LCD初始化
复制代码

移植时不要忘了修改

移植时还需要修改显示方式和宽高
  1. #define USE_HORIZONTAL 0  //设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏

  2. #if USE_HORIZONTAL==0||USE_HORIZONTAL==1
  3. #define LCD_W 172
  4. #define LCD_H 320
  5. #else
  6. #define LCD_W 320
  7. #define LCD_H 172
  8. #endif
复制代码

4.源代码
源代码由于合并fonts到一个文件有点长,csdn上传不了
放到github上了

5.使用示例
  1. LCD_Init();
  2. LCD_Fill(0,0,LCD_W,LCD_H,BLUE);
  3. Draw_Circle(50,50,5,WHITE);
  4. LCD_ShowString(10,10,(const uint8_t *)"TEST",YELLOW,GREEN,32,0);
复制代码


————————————————
版权声明:gxt_kt


收藏 评论0 发布时间:2023-2-6 15:39

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版