打印

【立创·梁山派GD32F4】- 1.47寸彩屏模块移植

[复制链接]
296|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
立创开发板|  楼主 | 2023-8-28 17:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 立创开发板 于 2023-8-28 18:01 编辑

#申请原创# #每日话题# #技术资源#
详情请跳转:https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc


模块来源
采购链接:
1.47寸lcd显示屏高清ips172x320 st7789驱动液晶屏高清液晶显示屏
资料下载链接:
https://pan.baidu.com/s/15OWpndYzyW8kFPqmfKNfxQ
资料提取码:8888

规格参数
工作电压:3.3V
工作电流:90MA
模块尺寸:30(H) x 37(V) MM
像素大小:172(H) x 320(V)RGB
驱动芯片:ST7789V3
通信协议:SPI
管脚数量:8 Pin(2.54mm间距排针)

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



查看资料

移植至工程

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

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


   软件SPI移植




硬件SPI移植

移植验证

<div data-page-id="EGRVdxunnohkrNxItYTcrwAnnHe" data-docx-has-block-data="false"><pre class="ace-line ace-line old-record-id-J60mdYIeaoSCkSxCcseczQDFnWh"><code class="language-C" data-wrap="false">#include "gd32f4xx.h"
#include "systick.h"
#include "lcd_init.h"
#include "lcd.h"

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

    LCD_Init();//屏幕初始化
    LCD_Fill(0,0,LCD_W,LCD_H,BLACK);//清全屏为黑色
   
    while(1)
    {            
                LCD_ShowString(0,16*2,"LCD_W:",WHITE,BLACK,16,0);
                LCD_ShowIntNum(48,16*2,LCD_W,3,WHITE,BLACK,16);
                LCD_ShowString(80,16*2,"LCD_H:",WHITE,BLACK,16,0);
                LCD_ShowIntNum(128,16*2,LCD_H,3,WHITE,BLACK,16);
               
                LCD_ShowString(0,16*3,"Nun:",WHITE,BLACK,16,0);
                LCD_ShowFloatNum1(8*4,16*3,t,4,WHITE,BLACK,16);
                t+=0.11;

                delay_1ms(1000);        
    }
}
</code></pre></div><span data-lark-record-data="{&quot;rootId&quot;:&quot;EGRVdxunnohkrNxItYTcrwAnnHe&quot;,&quot;text&quot;:{&quot;initialAttributedTexts&quot;:{&quot;text&quot;:{&quot;0&quot;:&quot;#include \&quot;gd32f4xx.h\&quot;\n#include \&quot;systick.h\&quot;\n#include \&quot;lcd_init.h\&quot;\n#include \&quot;lcd.h\&quot;\n\nint main(void)\n{\n    float t = 0;\n    nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);  // 优先级分组\n    systick_config();//滴答定时器初始化 1ms\n\n    LCD_Init();//屏幕初始化\n    LCD_Fill(0,0,LCD_W,LCD_H,BLACK);//清全屏为黑色\n    \n    while(1)\n    {            \n                LCD_ShowString(0,16*2,\&quot;LCD_W:\&quot;,WHITE,BLACK,16,0);\n                LCD_ShowIntNum(48,16*2,LCD_W,3,WHITE,BLACK,16);\n                LCD_ShowString(80,16*2,\&quot;LCD_H:\&quot;,WHITE,BLACK,16,0);\n                LCD_ShowIntNum(128,16*2,LCD_H,3,WHITE,BLACK,16);\n                \n                LCD_ShowString(0,16*3,\&quot;Nun:\&quot;,WHITE,BLACK,16,0);\n                LCD_ShowFloatNum1(8*4,16*3,t,4,WHITE,BLACK,16);\n                t+=0.11;\n\n                delay_1ms(1000);        \n    }\n}\n&quot;},&quot;attribs&quot;:{&quot;0&quot;:&quot;*0|s+mc&quot;}},&quot;apool&quot;:{&quot;numToAttrib&quot;:{&quot;0&quot;:[&quot;author&quot;,&quot;7213575654577553412&quot;]},&quot;nextNum&quot;:1}},&quot;type&quot;:&quot;text&quot;,&quot;referenceRecordMap&quot;:{},&quot;extra&quot;:{&quot;mention_page_title&quot;:{},&quot;external_mention_url&quot;:{}},&quot;isKeepQuoteContainer&quot;:false,&quot;isFromCode&quot;:true,&quot;selection&quot;:[{&quot;id&quot;:504,&quot;type&quot;:&quot;text&quot;,&quot;selection&quot;:{&quot;start&quot;:0,&quot;end&quot;:804},&quot;recordId&quot;:&quot;J60mdYIeaoSCkSxCcseczQDFnWh&quot;}],&quot;payloadMap&quot;:{},&quot;isCut&quot;:false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>








使用特权

评论回复
沙发
heisexingqisi| | 2023-9-30 11:12 | 只看该作者
用DMA控制是最好的吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

25

帖子

0

粉丝