0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA MCU众测宝典 | SPI驱动TFT屏幕

RA生态工作室 2026-02-03 17:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RA MCU众测宝典SPI专题来啦!这次我们聚焦【RA-Eco-RA4E2】开发板,一步步用SPI驱动1.8寸TFT屏幕。


开启宝典


前言

本次实验使用的是1.8寸TFT屏幕,分辨率128x160,驱动IC是ST7735。

实验的主要目的是根据屏幕的引脚定义来调用FSP库的SPI功能,为之后的项目模块整合打个基础。


01


硬件部分


1.8寸TFT屏幕的引脚定义如下:

20743950-00df-11f1-96ea-92fbcf53809c.png20857b66-00df-11f1-96ea-92fbcf53809c.png

观察原理图,在PMOD这块,正好有我们驱动屏幕所需的SPI功能所使用的引脚。接下来在e2s配置里就着重关注相关引脚配置。

20978414-00df-11f1-96ea-92fbcf53809c.png


02


软件部分


1

新建工程

将先前创建的工程模板文件夹复制一份,并将文件夹重命名为03_SPI_TFT。


在e2s里面,选择菜单栏的文件—导入—常规—现有项目到工作空间中—选择根目录"浏览"—完成。


2

配置工程

2.1设置外设对应引脚


20ad3192-00df-11f1-96ea-92fbcf53809c.png

这里将RST、DC、CS、BL这几个用GPIO进行操作,它们分别对应的开发板接口在先前的表格中已给出。


将P408、P105、P301、P014都设置为类似如下图所示的内容,注意Symbolic name这里,我都用的前面表格内的引脚名,如RST、DC等;Mode选择Output Initial Low。

20c6a30c-00df-11f1-96ea-92fbcf53809c.png


2.2新建并设置模块属性


点击Stacks,New Stack—Connectivity—SPI(r_spi)。点击刚生成的模块-属性,我们只需要改动下图所示的地方。

20d47c52-00df-11f1-96ea-92fbcf53809c.png


2.3生成代码


保存配置文件,并点击Generate Project Content让其自动为我们生成代码。


3

编写代码

由于代码内容过多,请在附件中下载工程压缩包查看。

3.1新建文件夹及源文件


在工程的src文件夹下,新建一个文件夹名为lcd,以及lcd_driver.h头文件和lcd_driver.c源文件,另外再建两个头文件,分别是font.h和pic.h。


3.2修改lcd文件夹下的文件


请直接下载附件,查看工程源文件。


3.3修改hal_entry.c


在文件开头增加:

左右滑动查看完整内容

#include"lcd/lcd_driver.h"


在hal_entry函数前面增加spi_callback,spi回调函数:

左右滑动查看完整内容

voidspi_callback(spi_callback_args_t * p_args){ if(SPI_EVENT_TRANSFER_COMPLETE== p_args->event) { g_transfer_complete =true; }}


在hal_entry函数内增加:

左右滑动查看完整内容

fsp_err_terr =R_SPI_Open(&g_spi1_ctrl, &g_spi1_cfg);assert(FSP_SUCCESS == err);R_IOPORT_PinWrite(&g_ioport_ctrl, RST, BSP_IO_LEVEL_LOW);R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MILLISECONDS);R_IOPORT_PinWrite(&g_ioport_ctrl, RST, BSP_IO_LEVEL_HIGH);R_BSP_SoftwareDelay(150, BSP_DELAY_UNITS_MILLISECONDS);R_IOPORT_PinWrite(&g_ioport_ctrl, BL, BSP_IO_LEVEL_HIGH);LCD_Init();LED_ON();
while(1){ LCD_Fill(0,0,LCD_W,LCD_H,BLUE); R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); LCD_Fill(0,0,LCD_W,LCD_H,YELLOW); R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); LCD_Fill(0,0,LCD_W,LCD_H,BLACK); LCD_ShowString(32,50,(uint8_t*)"RA4E2",RED,BLACK,24,0); LCD_ShowString(8,80,(uint8_t*)"SPI-LCD",BLUE,BLACK,32,0); R_BSP_SoftwareDelay(2000, BSP_DELAY_UNITS_MILLISECONDS);}


注:这里踩了两个坑

一定要在使用SPI前开启SPI,即调用R_SPI_Open。因为之前做点亮LED实验时,R_IOPORT_Open是被初始化程序自动调用的,在这里想当然地以为程序也会自动调用,就没加。结果就是屏幕各种点不亮。

需要在配置屏幕初始化之前,对屏幕进行reset操作,即拉低RST引脚1ms,拉高后等待120ms以上,再调用LCD_Init()。


03


下载测试


连接好开发板与屏幕,编译项目、烧录程序。


如果成功,将会看到颜色填充刷屏+显示字符串的效果,如结尾视频所示。


04


附件


您可扫描下方二维码查看完整代码内容。


完整代码

/uploads/03_SPI_TFT_1751424661.zip

20e30088-00df-11f1-96ea-92fbcf53809c.png


从屏幕引脚匹配、SPI模块参数配置,到LCD驱动代码编写,再到避开“未手动开启SPI”“复位不充分”的关键坑,我们不仅成功让TFT屏幕实现色彩刷屏和“RA4E2”“SPI-LCD”字符串显示,更扎实掌握了SPI高速串行通信的核心逻辑——这种多线传输的方式,在显示外设、数据传输等场景中有着不可替代的优势。

20f22ec8-00df-11f1-96ea-92fbcf53809c.png

SPI我们打开了高速通信的大门!接下来,“RA MCU 众测宝典”将迎来新的进阶专题——QSPI。作为SPI的升级版本,QSPI凭借四通道传输的优势,在高速存储、外设通信等场景中表现更出色,咱们会一起探索它的独特玩法。关注瑞萨嵌入式小百科,新专题开启第一时间就能跟上,继续解锁RA系列开发板的通信新技能!


2068bfee-00df-11f1-96ea-92fbcf53809c.svg


瑞萨样品/开发板申请入口如下,可扫描二维码或复制链接到浏览器获得

申请入口

瑞萨样品/开发板申请入口:

https://jsj.top/f/AgUyYV

2109c18c-00df-11f1-96ea-92fbcf53809c.png


需要技术支持?

如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。

212c5b34-00df-11f1-96ea-92fbcf53809c.png

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19232

    浏览量

    405182
  • TFT屏幕
    +关注

    关注

    0

    文章

    11

    浏览量

    10208
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1906

    浏览量

    102439
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞萨RA MCU宝典 SysTick之RA0E1定时器点灯

    RA MCU宝典 ”  SysTick 专题来啦!在上个的 环境搭建 专题中,我们已经筑牢了开发基础,而这次,我们要聚焦一个让程序“有节奏”运行的关键角色—— SysTick定
    的头像 发表于 08-05 14:50 3716次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b>  SysTick之<b class='flag-5'>RA</b>0E1定时器点灯

    RA MCU宝典 | I²C读取EEPROM

    “RAMCU宝典”IIC专题继续深耕!上一期我们用【RA-Eco-RA2E1】开发板实现了IIC通信的OLED显示。这次我们把目光转向实用的存储场景——基于【RA-Eco-RA4M
    的头像 发表于 01-13 18:05 8791次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | I²C读取EEPROM

    瑞萨RA MCU宝典 | 环境搭建之【RA-Eco-RA6E2-64PIN-V1.0 开发板】介绍、环境搭建、工程测试

    “RAMCU宝典”环境搭建专题再添实用干货!这次咱们聚焦高性能入门级开发板——【RA-Eco-RA6E2-64PIN-V1.0】。本文介绍了RA-Eco-RA6E2-64PIN-V
    的头像 发表于 03-20 16:23 8079次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | 环境搭建之【<b class='flag-5'>RA-Eco-RA</b>6E2-64PIN-V1.0 开发板】介绍、环境搭建、工程测试

    瑞萨RA MCU宝典 | 环境搭建之【RA-Eco-RA4M2】搭建Keil开发环境

    瑞萨“RAMCU宝典”环境搭建专题再添硬核实操!开启宝典概览瑞萨电子RA4M232位微控制器(MCU)系列使用支持TrustZone的高
    的头像 发表于 04-03 17:59 7290次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | 环境搭建之【<b class='flag-5'>RA-Eco-RA</b>4M2】搭建Keil开发环境

    瑞萨RA MCU宝典 | 环境搭建之【RA-Eco-RA4M2】QE工具使用

    瑞萨“RAMCU宝典”环境搭建专题再添硬核实操!开启宝典01简介RA-Eco-RA4M2-100PIN-V1.0是一款基于100MHzArmCortex-M33内核架构的核心板,主
    的头像 发表于 04-10 18:26 6175次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | 环境搭建之【<b class='flag-5'>RA-Eco-RA</b>4M2】QE工具使用

    瑞萨RA MCU宝典 | 串口之【RA-Eco-RA2L1】RTC日历及串口设置时间

    瑞萨“RAMCU宝典”串口专题添硬核实操!开启宝典前言RAMCU宝典|串口之【RA2L1
    的头像 发表于 04-21 18:07 7235次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | 串口之【<b class='flag-5'>RA-Eco-RA</b>2L1】RTC日历及串口设置时间

    RA-Eco-RA0E1-32PIN-V1.0开发板试用】软件驱动TFT屏幕

    ) 搞定基本的GPIO,就可以上TFT屏幕,本次基于软件SPI驱动。 首先介绍下本次使用的TFT屏幕
    发表于 08-26 21:45

    RA-Eco-RA4E2-64PIN-V1.0开发板试用】03、SPI驱动TFT屏幕

    0 前言 本次实验使用的是1.8寸TFT屏幕,分辨率128x160,驱动IC是ST7735。实验的主要目的是根据屏幕的引脚定义来调用FSP库的SPI
    发表于 12-15 12:46

    是否有用于“KMR-1.8 SPI TFT 128 * 60”屏幕的PIC32驱动程序?

    是否有一个SPI驱动程序用于这个“KMR-1.8 SPI TFT 128×60”屏幕可用于PIC32?谢谢! 以上来自于百度翻译 以下为原
    发表于 11-19 10:45

    RT-Thread与Renesas RA2L1实现1.8寸TFT屏幕显示的步骤

    1.8寸TFT屏幕的显示,方便后面开发使用,显示一些基本信息或者做UI。  准备  本次进行1.8寸LCD TFT显示测试,首先进行SPI配置,打开工程配置,如下所示:  在Pins中
    发表于 04-03 16:45

    STC8的硬件SPI驱动ST7735彩色TFT屏幕

    : 基于STC8硬件SPITFT驱动 from gayhub.代码是基于中景园的软件SPI屏幕驱动
    发表于 12-22 19:17 46次下载
    STC8的硬件<b class='flag-5'>SPI</b><b class='flag-5'>驱动</b>ST7735彩色<b class='flag-5'>TFT</b><b class='flag-5'>屏幕</b>

    RA MCU宝典 | IIC之【RA2E1】IIC通信的OLED显示

    “RAMCU宝典”IIC专题上线啦!这次,瑞萨嵌入式小百科将和大家一起聚焦【瑞萨RA2E1】开发板,一步步玩转IIC通信的OLED显示。从IIC协议的核心原理、FSP中I2CMaster的配置
    的头像 发表于 01-01 10:04 3863次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | IIC之【<b class='flag-5'>RA</b>2E1】IIC通信的OLED显示

    RA MCU宝典 | 在瑞萨CPKCOR-RA8D1B核心板上实现QSPI读取外部Flash

    RA生态工作室关注我们“RAMCU宝典”中I2C/SPI通信与显示驱动专题更新了。这次我们聚焦瑞萨【CPKCOR-
    的头像 发表于 02-06 18:02 5615次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | 在瑞萨CPKCOR-<b class='flag-5'>RA</b>8D1B核心板上实现QSPI读取外部Flash

    RA MCU宝典 | 环境搭建之【FPB-RA0E2】开发环境搭建

    RA生态工作室关注我们“RAMCU宝典”环境搭建专题更新啦!这次我们聚焦【FPB-RA0E2】开发板,一步步打通开发“第一关”,为后续功能开发筑牢基础。开启
    的头像 发表于 03-11 16:33 1672次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | 环境搭建之【FPB-<b class='flag-5'>RA</b>0E2】开发环境搭建

    瑞萨RA MCU宝典 | OLED之【RA-Eco-RA2L1】I²C驱动OLED屏幕 BME280传感器

    “RAMCU宝典”全新专题——OLED显示驱动正式开篇!开启宝典前言瑞萨RAMCU宝典|
    的头像 发表于 05-08 16:08 1056次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | OLED之【<b class='flag-5'>RA-Eco-RA</b>2L1】I²C<b class='flag-5'>驱动</b>OLED<b class='flag-5'>屏幕</b> BME280传感器