eefocus_4256949 发表于 2026-8-14 20:48:12

基于 RA8P1 的触摸屏演示工程

我们是全国大学生电子设计竞赛信息科技前沿专题赛的参赛队伍。本文是参赛作品中触摸显示部分整理出的学习例程:一个基于瑞萨 RA8P1 的触摸屏演示应用,驱动 ST7796 液晶屏(480×320)与 FT6336 电容触摸屏。文章重点介绍 RA8P1 平台资源的使用与工程配置,供参赛同学交流参考。

## 一、RA8P1 平台介绍

RA8P1 是瑞萨旗舰级边缘 AI 异构 MCU,22ULL 台积电工艺,定位介于高端 MCU 与入门 MPU 之间,单核集成 CPU 双核 + 硬件 NPU,专门面向端侧视觉 / 语音 TinyML 场景,也是瑞萨首款搭载 1GHz Cortex-M85 的量产芯片。

!(https://www.eefocus.com/forum/data/attachment/forum/202608/14/204630mpsg9skpkzuids41.png)



### 核心异构架构(三引擎架构)

1. **主运算核:Cortex-M85 @ 1GHz**
   带 Helium MVE 矢量扩展、FPU 浮点、TrustZone 安全架构,CoreMark > 7300,负责 AI 前后处理、系统主控、图形渲染,性能接近入门 MPU。
2. **实时协核:Cortex-M33 @ 250MHz**
   独立运行、低功耗实时域,接管电机控制、传感器采集、工业总线、低功耗休眠管理,不占用 M85 算力。
3. **AI 硬件加速:Ethos-U55 NPU @ 500MHz**
   算力 256 GOPS(0.256 TOPS),专门加速 CNN/RNN 神经网络;相比纯 CPU 推理速度提升 24~33 倍、功耗大幅降低,支持 8bit 权重、8/16bit 激活量化模型。

### 本工程用到的 RA8P1 资源

| 资源 | 用途 | 引脚 |
| --- | --- | --- |
| Cortex-M85 主核(1GHz) | 运行 FreeRTOS 与 LVGL,UI 任务 + 主循环 | 无 |
| DAVE2D 2D 图形加速器 | LVGL 渲染加速,矩形填充、混合等由硬件完成 | 无 |
| SCI 串行通信接口 | SCI3 配置为 SPI 主机,驱动 LCD(60MHz);SCI9 配置为 UART,输出调试日志 | SCI3 接 SCK-P311、MOSI-P310、MISO-P905;SCI9 接 TX-P209、RX-P208 |
| DMAC 直接存储器访问 | LCD SPI 收发的 DMA 通道(DMAC1/DMAC2),减轻 CPU 负担 | 无 |
| IIC 硬件 I2C 接口 | IIC2 主模式,读取 FT6336 触摸坐标寄存器 | SCL-P515、SDA-P514 |
| ICU 中断控制器 | 外部中断 IRQ13,接收触摸屏 INT 引脚信号 | P009 |
| IOPORT 引脚控制 | GPIO 控制 LCD 背光开关、触摸屏复位 | LCD 接 CS-P000、RST-P001、DC-P002、背光-P601;触摸 RST 接 P008 |
| Cortex-M33 实时协核 | 低功耗实时域,本工程未使用 | 无 |
| Ethos-U55 NPU | 256 GOPS 神经网络加速,本工程未使用 | 无 |

## 二、工程配置

### 1. 开发环境

- **IDE**:e2 studio(集成 RASC 外设配置器)
- **FSP 版本**:6.3.0
- **工具链**:arm-none-eabi-gcc 13.2(`-mcpu=cortex-m85`,链接启用 `--gc-sections` 自动丢弃未引用代码)
- **构建**:GNU make(e2 studio 自动生成构建脚本)
!(https://www.eefocus.com/forum/data/attachment/forum/202608/14/204648ge9n0tns4srnznyj.png)



### 2. 外设配置清单(FSP 配置项)

| 外设 | 用途 | 引脚 |
| --- | --- | --- |
| SPI(SCI3) | SPI 主机模式,位速率 60MHz,MSB 先行,LCD 命令与像素数据 | SCK-P311、MOSI-P310、MISO-P905 |
| DMAC(DMAC1/DMAC2) | SPI 收发传输通道,LCD 刷屏 DMA | 无 |
| I2C(IIC2) | 硬件主模式,7 位地址,FT6336 触摸 | SCL-P515、SDA-P514 |
| 外部中断(IRQ13) | 下降沿触发,触摸 INT 引脚 | P009 |
| UART(SCI9) | 8N1,无校验,printf 调试输出 | TX-P209、RX-P208 |
| GPIO | 背光、触摸复位,屏控制 | LCD 接 CS-P000、RST-P001、DC-P002、背光-P601;触摸 RST 接 P008 |

### 3. 系统与软件配置

- **FreeRTOS**:任务静态创建(`xTaskCreateStatic`),UI 任务栈 20KB;5ms 主循环周期
- **LVGL 9.5.0**(lv_conf.h):
- `LV_USE_DRAW_DAVE2D 1` —— 开启 DAVE2D 硬件加速
- 颜色格式 RGB565,PARTIAL 渲染模式,双缓冲(两片 480×40)
- `LV_BUILD_EXAMPLES / LV_BUILD_DEMOS` 关闭(例程不需要示例代码)
- **外设打开方式**:外设不在系统启动时统一打开,而是由各驱动模块初始化时手动调用 open

!(https://www.eefocus.com/forum/data/attachment/forum/202608/14/204659lnh7jggomggzynmd.png)



## 三、例程内容简介

例程为一个触摸屏交互演示,实现三个功能:

1. **纯白界面**:开机后屏幕纯白,无多余元素;
2. **单击画红点**:点击处出现 12×12 红色实心圆,多次点击红点累积显示;
3. **双击清屏**:400ms 内同一区域(≤30px)双击,清空全部红点恢复白屏;

!(https://www.eefocus.com/forum/data/attachment/forum/202608/14/204712suwpwu1pncqpduw6.png)



### 工程代码结构(src 目录)

| 文件/目录 | 职责 |
| --- | --- |
| `ui_thread_entry.c` | UI 线程入口与交互逻辑(画点/清屏) |
| `middleware/lvgl_port/` | LVGL 显示与触摸适配层(lv_port_disp / lv_port_touch) |
| `device/display/` | 显示抽象层(display_device) |
| `drivers/display/` | LCD 与触摸驱动(lcd_bus_spi / lcd_st7796 / lcd_touch_ft6336) |
| `system/isr.c` | 中断回调、printf 串口重定向 |

通过网盘分享的文件:触摸屏.zip
链接: https://pan.baidu.com/s/1yQMbvkIYji3sWgDItF1RKg?pwd=newm 提取码: newm

感谢阅读,欢迎指正。

页: [1]
查看完整版本: 基于 RA8P1 的触摸屏演示工程