【立创·梁山派GD32F4】-1.9寸彩屏移植过程

[复制链接]

10

主题

10

帖子

71

积分

一粒轻沙

Rank: 1

积分
71
楼主
查看: 2657回复: 0 发表于 2023-8-25 11:39:20   只看该作者
详情请跳转:https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc

模块来源
采购链接:
黄保凯中景园1.9寸LCD显示屏高清ips显示屏170x320 st7789驱动
资料下载链接:
https://pan.baidu.com/s/1ArmQST7I84UYY7n0aJdEBw
资料提取码:8888


规格参数


  工作电压:3.3V
  工作电流:50MA
  模块尺寸:29(H) x 62(V)MM
  像素大小:170(H)  x 320(V) RGB
  驱动芯片:ST7789V3
  通信协议:SPI
  管脚数量:8 Pin(2.54mm间距排针)
  以上信息见厂家资料文件1.2.2.1 屏幕规格书

  文件1.2.2.1 屏幕规格书




  图1.2.2.1 文件路径


  图1.2.2.2 尺寸参数

移植过程


我们的目标是将例程移植至梁山派GD32F470上。按照以下步骤,即可完成移植。
  • 将源码导入工程;
  • 根据编译报错处进行粗改;
  • 修改引脚配置;
  • 修改时序配置;
  • 移植验证。
查看资料

移植至工程

引脚选择
该屏幕需要设置8个接口,具体接口说明见 表1.2.3.1  各引脚说明
接口
说明

GND
电源地
VCC
电源正(3.3V)
SCL
串行信号时钟输入
SDA
串行信号数据输入
RES
复位信号输入(低电平有效)
DC
数据/命令控制(引脚拉高为数据,引脚拉低为命令)
CS
片选输入(只有CS拉低时,芯片才能使能MCU通信)
BLK
背光控制(默认打开背光,引脚拉低为关闭背光)
表1.2.3.1 各引脚说明

模块为SPI通信协议的从机,SCL为SPI信号线(SCK),SDA为SPI输出线(MOSI),CS为SPI片选线(NSS)。
如果MCU的GPIO引脚不足,可以将屏幕的两个引脚接口不接入MCU的GPIO。
  • 将RES接入MCU的复位引脚,当MCU复位时,屏幕也跟着复位;
  • 可以将BLK接入3.3V或悬空,代价是无法控制背光亮度。
下面分为软件SPI移植与硬件SPI移植进行讲解。



软件SPI移植
当前厂家源码使用的是软件SPI接口,SPI时序部分厂家已经完成,我们只需要将引脚和延时配置好即可。所以对应接入的屏幕引脚请按照你的需要。这里选择的引脚见表1.2.3.3.1 软件SPI接线
[td]
屏幕
开发板

GND
GND
VCC
3.3V
SCL
PB13
SDA
PB15
RES
PD0
DC
PC6
CS
PB12
BLK
PC7





硬件SPI移植

移植验证
  1. #include "gd32f4xx.h"
  2. #include "systick.h"
  3. #include "lcd_init.h"
  4. #include "lcd.h"

  5. int main(void)
  6. {
  7.     float t = 0;
  8.     nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);  // 优先级分组
  9.     systick_config();//滴答定时器初始化 1ms

  10.     LCD_Init();//屏幕初始化
  11.     LCD_Fill(0,0,LCD_W,LCD_H,BLACK);//清全屏为黑色
  12.    
  13.     while(1)
  14.     {            
  15.                 LCD_ShowString(0,16*2,"LCD_W:",WHITE,BLACK,16,0);
  16.                 LCD_ShowIntNum(48,16*2,LCD_W,3,WHITE,BLACK,16);
  17.                 LCD_ShowString(80,16*2,"LCD_H:",WHITE,BLACK,16,0);
  18.                 LCD_ShowIntNum(128,16*2,LCD_H,3,WHITE,BLACK,16);
  19.                
  20.                 LCD_ShowString(0,16*3,"Nun:",WHITE,BLACK,16,0);
  21.                 LCD_ShowFloatNum1(8*4,16*3,t,4,WHITE,BLACK,16);
  22.                 t+=0.11;

  23.                 delay_1ms(1000);        
  24.     }
  25. }
复制代码


详情请跳转:https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc


快速回复 返回顶部 返回列表