0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:硬件工程师的小世界 作者:TTYY 2023-04-24 17:26 次阅读

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中文手册有说明:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16277

    浏览量

    177741
  • STM32
    +关注

    关注

    2269

    文章

    10883

    浏览量

    355466
  • LCD屏
    +关注

    关注

    0

    文章

    122

    浏览量

    15414
  • 驱动IC
    +关注

    关注

    9

    文章

    301

    浏览量

    33801
  • STM32F103
    +关注

    关注

    33

    文章

    477

    浏览量

    63568
收藏 人收藏

    评论

    相关推荐

    Linux中基于EP7312的LCD驱动程序设计

    介绍在Linux操作系统中基于EP7312的LCD设备驱动程序设计。其中包括LCD设备显示原理,EP7312上与LCD 相关的寄存器, Li
    发表于 04-15 11:46 28次下载

    Windows CE 5.0下LCD驱动程序移植

    本 文介绍了在嵌入式操作系统WCE 5.0 下LCD 驱动程序的结构模型,以及S3C2410的LCD 控制器的基本原理。在此基础上,对WCE5.0 下
    发表于 08-28 12:14 13次下载

    USB接口驱动程序开发

    介绍USB的优点和发展情况,基于DDK的USB设备驱动程序结构,并结合开发的ARM 板驱动程序对关键程序进行介绍
    发表于 03-19 15:21 121次下载
    USB<b class='flag-5'>接口</b><b class='flag-5'>驱动程序</b>开发

    LCD1602驱动程序

    写了一个LCD1602的驱动程序,分享给大家参考(基于51单片机)。
    发表于 03-10 14:49 15次下载

    Windows CENET环境下的流接口驱动程序开发

    针对在Windows CE.NET环境下进行驱动程序设计的难点及其设计时的具体特点和要求主要介绍了基于Windows CE的两种驱动模型即本机驱动程序和流
    发表于 04-18 10:02 3次下载

    如何使用STM32的FSMC接口驱动LCD

    本实验向大家介绍如何使用STM32的FSMC接口驱动LCD屏,及使用触摸屏控制器检测触点坐标。
    发表于 09-22 12:04 0次下载

    lcd1602的驱动程序

    这个是lcd1602的驱动程序,能力有限,欢迎指点!
    发表于 09-27 15:56 2次下载

    12864驱动程序

    LCD12864驱动程序和显示原理
    发表于 04-16 12:54 18次下载

    基于Linux下的LCD驱动程序实现

    基于Linux下的LCD驱动程序实现
    发表于 10-30 16:45 12次下载
    基于Linux下的<b class='flag-5'>LCD</b><b class='flag-5'>驱动程序</b>实现

    Linux设备驱动程序的平台驱动程序和字符驱动程序介绍

    了解Linux设备驱动程序的基础知识,重点介绍平台驱动程序和字符驱动程序。 提出了简单的平台驱动程序实现和简单的字符
    的头像 发表于 11-27 06:32 4290次阅读

    DS1302的驱动程序LCD1602驱动显示程序免费下载

    本文档的主要内容详细介绍的是DS1302的驱动程序LCD1602驱动显示程序免费下载。
    发表于 11-05 15:34 0次下载
    DS1302的<b class='flag-5'>驱动程序</b>和<b class='flag-5'>LCD</b>1602<b class='flag-5'>驱动</b>显示<b class='flag-5'>程序</b>免费下载

    STM32的ADC驱动程序

    STM32的ADC驱动程序(电源威廉希尔官方网站 被踢出核心)-  STM32的ADC驱动程序,环境是MDK,ADC的所有函数
    发表于 09-23 13:43 37次下载
    <b class='flag-5'>STM32</b>的ADC<b class='flag-5'>驱动程序</b>

    LCD1602液晶实验驱动程序

    LCD1602液晶实验驱动程序分享。
    发表于 06-06 14:28 3次下载

    UM2570_STM32G4的HAL和LL驱动程序介绍

    UM2570_STM32G4的HAL和LL驱动程序介绍
    发表于 11-22 08:22 0次下载
    UM2570_<b class='flag-5'>STM32</b>G4的HAL和LL<b class='flag-5'>驱动程序</b><b class='flag-5'>介绍</b>

    VK1621 LCD驱动程序

    VK1621是一个RAM映射32x4 LCD驱动程序,它可以支持最多128个LCD屏幕模式(32SEGx4COM),它还支持2COM或3COM的LCD屏幕需要与VK1621通信
    发表于 03-09 13:46 7次下载