摘要
本教程详细介绍基于 STM32F103RC 微控制器和 TFT-LCD 显示屏的电子相册系统开发,涵盖硬件连接、文件系统移植、BMP/JPEG 解码算法实现及显示优化。通过 FATFS 文件系统读取 SD 卡图片,采用专用解码算法处理图像数据,最终在 320×480 分辨率屏幕上流畅显示。
一、项目概述
1.1 系统架构设计
- 主控:STM32F103RC
- 存储:SD 卡
- 显示:TFT-LCD
- 交互:用户按键
- 软件:FATFS 文件系统、BMP 解码器、JPEG 解码器、显示驱动
1.2 硬件组件清单
| 组件 | 型号 | 数量 |
|---|---|---|
| 主控 | STM32F103RCT6 | 1 |
| 显示屏 | ILI9486 3.5 寸 TFT | 1 |
| 存储 | MicroSD 卡 (≥4GB) | 1 |
| 接口 | SPI 转 SD 模块 | 1 |
1.3 技术指标
- 支持格式:BMP24/JPEG
- 最大分辨率:2048×1536
- 刷新速率:≥2fps(320×480)
- 功耗:<[email protected]
二、开发环境搭建
2.1 软件工具
- Keil MDK v5.25
- STM32CubeMX
- FATFS R0.14b
- LibJPEG v9d
2.2 硬件连接
/* 引脚定义 - stm32f10x_pin.h */
#define LCD_CS GPIO_Pin_12 // PB12
#define LCD_DC GPIO_Pin_11 // PB11
#define SD_CS GPIO_Pin_8 // PA8
2.3 工程创建步骤
- 使用 CubeMX 配置:
- SPI1: 18MHz (SD 卡)
- FSMC: Bank1 NOR/PSRAM (LCD)
- GPIO: 用户按键
添加中间件:
Middleware/
├─ FATFS/
├─ LibJPEG/
└─ STemWin/
三、TFT-LCD 驱动开发
3.1 显示屏初始化
// lcd_init.c
{
LCD_Reset();
delay_ms();
LCD_WriteCmd();
delay_ms();
LCD_WriteCmd();
LCD_WriteData();
LCD_WriteCmd();
LCD_WriteData();
LCD_WriteCmd();
}


