stm32基于FSMC实现LCD驱动
温馨提示:
本文最后更新于 2025年11月25日,已超过 14 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
一、项目简介
项目使用的芯片有STM32F103ZET6,屏幕使用Z350IT002是一块320*480的屏幕,驱动使用ILI9486。
程序框架使用的是STM32的hal库,片上外设使用到的GPIO PG15和PB0,以及FSMC。
在LCD上实现电角度与物理角的显示。
二、FSMC简介
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接, 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器。
在操作 LCD 的时候需要用到的就只有: RS、 D0~D15、 WR、 RD 和 CS。其操作时序和 SRAM的控制完全类似,唯一不同就是 TFTLCD 有 RS 信号,但是没有地址信号。
而RS信号是用来控制LCD是写命令还是写数据的,本质上可以理解为一个地址,我们可以将RS信号接在FSMC的地址线上,可以选任意一根地址线,但注意接在不同地址线,地址的值会不同。
这样数据引脚,地址引脚,写信号(WE)、读信号(OE)、片选信号(CS)都可以和LCD对应脚连接起来,引脚初始化时,复用FSMC输出即可。LCD中还有RST,BL,接单片机的普通IO口即可。
| 模块引脚 | 功能描述 | 对应 STM32 FSMC/IO 引脚 |
|---|---|---|
| CS | 片选(低有效) | PG12(FSMC_NE4) |
| RS | 命令 / 数据选择 | LCD Register Select(A10) |
| WR | 写使能 | PD5(FSMC_NWE) |
| RD | 读使能 | PD4(FSMC_NOE) |
| RESET | 模块复位 | PG15 |

原理图

三、问题记录
由于KEIL中优化级别问题导致屏幕无法渲染,调整最低级别显示正常。
代码我放到gitee上了 https://gitee.com/lijunze94/bldc-montor,感兴趣的可以看下 。
最后记录一下
本文详细介绍了STM32 LCD模块的驱动实现,包括硬件连接、引脚配置、FSMC接口配置以及软件实现。
正文到此结束
- 本文标签: 其他
- 本文链接: https://lijunze.me/article/4
- 版权声明: 本文由泽原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权