STM32系列之LCD驱动接口与驱动程序介绍

发布者:mlgb999最新更新时间:2023-07-17 来源: elecfans关键字:STM32系列  驱动程序 手机看文章 扫描二维码
随时随地手机看文章

STM32F103系列是没有内置LCD控制器接口的,如果要驱动LCD,需要一颗LCD图形驱动IC。STM32和LCD驱动IC的接口在STM32端是FSMC,FSMC接口提供各种存储器驱动信号也提供了驱动LCD驱动IC的各种信号。


一、FSMC简介

FSMC概览

如下图可以看到FSMC支持的存储器类型及提供的各种读写控制信号。

图片

图1

2.FSMC 框图

图片

图2

3.FSMC 内存地址空间分配

图片

图3

二、LCD 接口

1.8080和6800接口

这两种接口类型是典型的LCD并行接口。接口信号分为:数据信号和控制信号。

数据信号支持8,9,16,18,24位等。

控制信号用来区分读、写及区分是向LCD寻址命令寄存器还是写LCD RAM数据。

控制信号定义如下:

图片

图4

8080接口:

图片

6800接口:

图片

2.FSMC的LCD接口信号

图片

图5

通过图5,可以看到FSMC提供了LCD驱动所需的全部信号。

片选有专门的硬件信号,也可以使用地址信号Ax,即空闲的地址信号任选一根使用。而LCD的RS信号也可以连接到一根地址线。

3.FSMC 和LCD 连接框图

8080类型接口

图片

6800类型接口

图片

4.驱动程序

以STM32F103VCT6为例,关于103VCT6的信息如下:

图片

只能使用BANK1且Ax推荐使用16-23,STM32原理图接口连线如下:

图片

如上图,RS接A16,CS接A17。

如图3,BANK1的基地址是0x60000000,

关于LCD驱动IC的访问模式有4种:

图片

所有对LCD图形界面的操作都是基于这四个函数,所以实现4个函数很重要。

#define LCD_COMM_ADD ((vu16 )0X60020000)

#define LCD_DATA_ADD *((vu16 *)0X60000000)

#define WriteCommand(cmd) {LCD_COMM_ADD = cmd;}

#define WriteData(data) {LCD_DATA_ADD = data;}

inline u8 ReadData(void)

{

return LCD_DATA_ADD;

}

inline u8 ReadCOMM(void)

{

return LCD_COMM_ADD;

}

以上代码中RS和标准接口定义是反的,是因为LCD驱动IC对RS的定义和标准就是反的。LCD驱动IC的SPEC:

图片

另一个问题,硬件使用A16连接RS,为什么代码里体现是的0X60020000(A17)?为什么左移一位,原因在STM32中文手册有说明:

图片


关键字:STM32系列  驱动程序 引用地址:STM32系列之LCD驱动接口与驱动程序介绍

上一篇:基于STM32+SHT30设计的环境温度与湿度检测系统(IIC模拟时序)
下一篇:基于STM32设计的数码相册

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved