首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带TFT的STM32F4 FSMC

带TFT的STM32F4 FSMC
EN

Stack Overflow用户
提问于 2016-04-20 15:18:15
回答 1查看 7.1K关注 0票数 2

我正在尝试理解STM32f4-发现上的灵活静态内存控制器(FSMC)。

我做了很多研究,我不明白这是怎么回事。我是一个完全自学的程序员,目前正在攻读化学学位,所以对我来说轻松点吧。

我发现了我一直在使用的这些网站:

https://electronics.stackexchange.com/questions/165200/stm32f407-fsmc-interface-with-tft-lcd

http://prog3.com/sbdm/blog/u013030441/article/details/48159101

note/85/ad/ef/0f/a3/a6/49/9a/CD00201397.pdf/files/CD00201397.pdf/jcr:content/translations/en.CD00201397.pdf

我还从ST本身找到了带有示例代码的库。

好吧,现在误解:

当我查看上述两种TFT驱动程序的代码时,我看到LCD的结构或定义如下

代码语言:javascript
复制
#define LCD_REG      (*((volatile unsigned short *) 0x60000000)) 
#define LCD_RAM      (*((volatile unsigned short *) 0x60020000)) 
LCD_RAM = data;
LCD_REG = command;

我的问题是,为什么他们必须访问FSMC SRAM银行的两个区域,而不是一个。基本上,为什么我不能仅仅通过写到LCD_REG (内存库的开始)向液晶显示发送数据呢?

一定有什么关于FSMC的东西,我错过了。我看了好几遍数据表,我知道银行的开盘价是0x6000,000,但我无法解释为什么他们会在0x6002 0000的另一段进入银行。

任何在理解方面的帮助都是非常感谢的。如果你知道一本书或网站,我可以用来学习FSMC,我将非常感谢。

谢谢大家的支持!

EN

回答 1

Stack Overflow用户

发布于 2016-04-21 06:10:35

请看图7中的应用程序说明,您已经链接。他们连接了16条数据线,但只有一条地址线连接到RS引脚。然后,液晶显示控制器成为一个内存映射外围两个寄存器。如果地址中的特定位为0,则对命令寄存器进行寻址,如果为1,则为数据寄存器。其余的地址线没有连接,因此它们的状态是无关的,例如可以访问0x60FFFFFF上的数据寄存器。请注意,所有三个示例都使用不同的地址行,因此数据寄存器的地址不同。

要使用液晶显示,您可以向命令寄存器编写命令代码,也可以选择,然后在数据寄存器中加上一些参数,然后是下一个命令,等等。有设置显示区域、颜色映射、亮度、滚动等特殊效果的命令。每个命令都有固定数量的参数,但有一个叫做写RAM的参数,其中参数是实际的像素数据。像素数据按顺序存储在显示内存中,您可以使用写RAM命令设置任意数量的像素数据,您还可以永远停留在这种模式下,并一个接一个地发送显示更新。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36748271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档