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

    文章

    18880

    浏览量

    395574
  • TFT屏幕
    +关注

    关注

    0

    文章

    11

    浏览量

    10167
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1885

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞萨RA2L1 MCU e² studio和FSP的使用指南

    本期“RA MCU宝典” 继续聚焦 “环境搭建” 专题,带大家走进【RA-Eco-RA2L1-48PIN-V1.0】的世界,查看e² s
    的头像 发表于 08-04 13:45 2820次阅读
    瑞萨<b class='flag-5'>RA</b>2L1 <b class='flag-5'>MCU</b> e² studio和FSP的使用指南

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

    RA MCU宝典 ”  SysTick 专题来啦!在上个的 环境搭建 专题中,我们已经筑牢了开发基础,而这次,我们要聚焦一个让程序“有节奏”运行的关键角色—— SysTick定
    的头像 发表于 08-05 14:50 3373次阅读
    瑞萨<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 5650次阅读
    <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宝典 | ADC/DAC之【RA2L1】DAC电压输出及ADC电压采集实验

    “RAMCU宝典”ADC/DAC通信专题上线啦!咱们接下来要解锁嵌入式开发中“连接模拟与数字世界”的关键技能——ADC/DAC专题。这次,瑞萨嵌入式小百科将和大家一起聚焦【瑞萨RA2L1】开发板
    的头像 发表于 01-20 18:43 3952次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>众</b>测<b class='flag-5'>宝典</b> | ADC/DAC之【<b class='flag-5'>RA</b>2L1】DAC电压输出及ADC电压采集实验

    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

    STM32 SPI如何驱动ST7789 LCD ISP TFT液晶屏幕

    STM32 SPI如何驱动ST7789 LCD ISP TFT液晶屏幕
    发表于 12-17 06:39

    怎样使用HAL库模拟SPI驱动1.8寸TFT屏幕

    怎样使用HAL库模拟SPI驱动1.8寸TFT屏幕呢?有哪些操作流程?
    发表于 02-11 08:05

    基于STC8硬件SPITFT驱动

    : 基于STC8硬件SPITFT驱动 from gayhub.代码是基于中景园的软件SPI屏幕驱动
    发表于 02-17 06:50

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

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

    STM32单片机基础17——使用硬件SPI驱动TFT-LCD(ST7789)

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外设与ST7789通信,驱动16bit TFT-LCD 屏幕。0. 前言学习
    发表于 11-21 17:21 66次下载
    STM32单片机基础17——使用硬件<b class='flag-5'>SPI</b><b class='flag-5'>驱动</b><b class='flag-5'>TFT</b>-LCD(ST7789)

    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 1260次阅读
    <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 1310次阅读
    <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