历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2020年02月13日 | STM32之FSMC驱动LCD屏应用

2020-02-13 来源:elecfans

首先,你得稍微了解一下FSMC的基本原理,就是说它是怎么用的,怎么配置,为什么能这么用。这个东西可以看看STM32F4的参考手册。这里不具体说了。


FSMC其实就是把芯片内部的数据总线和地址总线引出来了,其实51单片机也是有这个总线外接的。没有说把SRAM读到内部内存再读到CPU,SRAM就是内存,直接读到CPU的寄存器,通过内部的AHB总线传输的。


我使用的是野火开发板的屏,因为想用开发板提供的程序直接移植。(小白就只能干这种事)因为买的最小系统板是100脚封装的,所以在使用上有点小问题了。我在网上查了好多关于怎么在100引脚的板子上用FSMC上驱动LCD,没有找到合适的答案,既然自己运气好点,调出来了,那么就分享一下。即使不能帮到看到的人,起码能给遇到和我相同问题的人一点安慰!慢慢调,能调出来的!


FSMC的数据线D0-D15,100封装的也有,直接连上就好。(参考数据手册IO口的定义)电源地什么的也当然也是。背光那个引脚是可以自己定义的,这个看个人喜好了。在LCD初始化的最后把背光开了,我的是低电平有效。复位信号和背光一样。CS信号在FSMC定义是PG12,显然没有,但是CS即片选信号,既然我用的就是这一块屏,没必要控制选哪一个,直接使之永远被选就好。当然自己用个引脚去控制理论上也可以。(我没试过)最关键的是LCD-DC信号,使用方法是接在FSMC的地址线上,100封装的也有几根地址线,根据选定的地址线计算好RAM地址。


STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT.


一般越是复杂的东西,理解起来就很困难,但是使用上却很方便,如USB.


不过FSMC也有很诡异的地方。如

STM32之FSMC驱动LCD屏应用

为什么呢?那时我还以为软件或硬件还是芯片有BUG,

我就是从上面的不解中开始研究FSMC的…。。


FSMC翻译过来就是灵活的静态存储器控制器,是用来驱动外部总线的。关于外部总线,你可以想象一下51的外部总线,STM32的FSMC实际上跟51的外部总线是一样的,只不过性能更好,速度更快。 至于总线的优势,可以举个51外部总线的例子,51单片机驱动1864或者1602液晶,如果用IO口模拟液晶的时序,需要用指令分别控制RS,WR,EN控制线还有数据线;但是如果用的是外部总线,从汇编指令上来讲,只需要一条MOVX指令就解决问题了。二者的速度一目了然!


在一些TFT液晶的操作用经常用得到,并且非常的好用!(以一个TFT为例)TFT的数据接口为:D0-D15或者D0-D8.


TFT的控制线有:复位信号RST,片选CS,输出使能RD(读信号),写信号WE以及RS信号。

于STM32连线为: RST-》GPIO, CS-》NEx, RD-》NOE, WE-》RW, RS-》A0(或者其他任何一条地址线)

关键的一点就在于这个RS信号(我只说关键的这一点):

一般TFT的地址线只有1个RS. 以控制芯片的TFT为例.RS=0的时候一般是写命令,RS=1的时候是写数据,把TFT作为只有2个地址的存储器对待。

RS接到哪一个地址线都是可以的。假如RS接到A0,而片选为NE4,总线宽度8位。


那么可以定义

#define Bank1_SRAM4_ADDR ((u32)0x6C000000) #define LCD_DATA_ADDR (Bank1_SRAM4_ADDR + 1) #define LCD_CMD_ADDR (Bank1_SRAM4_ADDR + 0) 那么写命令数据就是直接往LCD_CMD_ADDR写数据:(假设cmd,data为16位,而我的TFT数据接口是8位) LCD_WRITE_CMD(unsigned short cmd) //写命令到TFT,16位要写2次

{ *(vu8*)LCD_CMD_ADDR=(cmd》》8);

*(vu8*)LCD_CMD_ADDR=(cmd);

}

写数据就是直接往LCD_DATA_ADDR写数据:

LCD_WRITE_DATA(unsigned short Data) //写数据到TFT

{ *(vu8*)LCD_DATA_ADDR=(Data》》8);

*(vu8*)LCD_DATA_ADDR=(Data); }


至于RD,WE,RS,CS信号都已经是FSMC控制器自动产生的,不用理会,不过当然是FSMC及GPIO初始化要正确。而RST信号还是需要通过操作GPIO来完成的。


这是最基本的2个操作。而那些什么设置X,Y,设置窗口,设置亮度,设置。。。。都是由这2个操作组合完成的。


72M HZ,320*240刷单色屏速度在 32fps左右.

推荐阅读

史海拾趣

Asian Best Components Co Ltd公司的发展小趣事

Asian Best Components Co Ltd深知人才是企业发展的核心力量。因此,公司一直高度重视人才的培养和引进。公司建立了完善的人才培训体系,通过内部培训、外部交流等方式不断提升员工的技能水平和综合素质。同时,公司还积极引进国内外优秀人才,为公司的技术创新和市场拓展提供了有力支持。这种对人才的重视和投入,使得Asian Best在激烈的市场竞争中始终保持着强劲的发展势头。


以上是根据您的要求创作的5个关于Asian Best Components Co Ltd公司发展起来的相关故事。这些故事旨在展现公司在技术创新、市场拓展、品质管理、环保理念以及人才培养等方面的努力和成就。请注意,这些故事纯属虚构,如有雷同纯属巧合。

Alliance Memory公司的发展小趣事

在电子行业的快速发展中,Asian Best Components Co Ltd始终坚持环保理念,致力于推动绿色生产。公司积极采用环保材料和工艺,减少生产过程中的废弃物排放和能源消耗。同时,公司还加大了对环保技术的研发投入,推出了一系列环保型电子元件,为行业的可持续发展做出了积极贡献。这种环保理念不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。

Frequency Management International公司的发展小趣事

随着业务的不断发展,FMI开始积极拓展国内外市场。公司凭借高品质的产品和专业的服务,赢得了众多客户的信赖和支持。同时,FMI还积极实施国际化战略,通过参加国际展会、建立海外销售网络等方式,不断提升品牌国际影响力。目前,FMI的产品已经广泛应用于计算机外设、工业仪器、局域网/广域网、光网络、过程控制、电信和无线产品等多个领域,并远销全球多个国家和地区。

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

随着技术的不断进步和产品的日益成熟,AVG开始积极寻求市场扩张的机会。公司先后进入多个国家和地区,通过设立分支机构和与当地企业建立合作关系,逐步扩大了市场份额。同时,AVG还注重品牌建设和提升,通过参加国际电子展会、举办技术研讨会等活动,提高了品牌知名度和影响力。这些举措使得AVG在全球电子行业中的地位逐渐提升。

艾谱科(Epticore)公司的发展小趣事

艾谱科公司深知技术创新的重要性。为了保持产品的竞争力,公司不断加大研发投入,积极引进高素质人才,并与国内外知名科研机构建立合作关系。在研发团队的努力下,艾谱科不断推出具有创新性的产品,如低功耗处理器、高速数据传输模块等。这些新产品不仅提升了公司的市场竞争力,也为客户提供了更加优质的产品选择。

Gwconnect (Molex)公司的发展小趣事
使用分立元件构成电路,相比集成电路成本更低。

问答坊 | AI 解惑

SNMP在数据网监控中的应用分析

IAB认为,就目前的情况看,简单网络管理协议SNMP变得非常流行,它已经变成了对基于IP网络的管理数据进行报告的工业标准。在这里,我们重点介绍SNMP在数据网络监控中的两个应用:实时监测网络时延、实时绘制ATM/FR电路流量和电路告警。 一、SNMP网 ...…

查看全部问答>

工程师必看:做完项目之后的九问!

及时的自我总结,从技术上讲,每作完一个项目/电路设计,或者项目时间比较长,就在一段工作时间之后,好好小结一下最近的工作成绩,我觉得这是很有必要的。根据我个人的体会,可以参照下面的几点去总结。 另外我还想说,项目的完成,是公司的获得, ...…

查看全部问答>

请教下关于 WINCE的电源TIMEOUT问题。(重启后不关背光设置无效)

请问为什么我在电源管理那设置了电池和AC 为“从不”在设置完后确实不会关背光,但是一但重启机器后还是一分钟后自动关闭背光,在电源管理上可以看见那两项确实是显示“从不”。我用RegQueryValueEx 对ACUserIdle以及BattUserIdle进行读取,得到的 ...…

查看全部问答>

CE 调试问题

各位大侠好:     小弟又有事情求教了。     无论是在PB中还是在eVC ++中,都有远程调试的功能。问:怎么样才可以建立远程连接呢?         我尝试过 用 ActiveSync,我想应该是用同步方式连接吧,但 ...…

查看全部问答>

Hishop去版权通用注册机免费下载

网盘免费下载:www.hishop.ys168.com 注册机试用版登(DEMO用户)陆密码:fe01ce2a7fbac8fafaed7c982a04e229 试用版,只允许试用一天,一天过后,自动过期! 正式版没有任何限制!支持Hishop5.2.1证书破解,附DLL文件破解!购买请联系:QQ:5243121 ...…

查看全部问答>

WINCE不支持斜角输出字符串吗??

        使用VC开发时,常常需要在窗口上画一些图表。有时要把一些文字竖着写,有时需要倾斜一定的角度。对于老手们,这当然算不上什么问题,而新手却常常找不到方法。     新手们往往会在CDC的成员函数里四处寻 ...…

查看全部问答>

EK-STM32板的几个问题

1.例程序中的U盘程序无法正常工作,在Debugger连接后就出现了一个移动硬盘(疑为STM32的flash)。但运行MassstorageSimpleBuffer程序后在设备管理器里有一个出错的USB Device。2.运行LCD demo正常,理论上说在进入debug后IAR已经将 ...…

查看全部问答>

linux设备驱动中,为什么要注册混杂型字符设备驱动

linux设备驱动中,为什么要注册混杂型字符设备驱动????????…

查看全部问答>

【学习心得+电源】+电路保护学习笔记

电路保护在设计里无处不在 很少设计电路,就算在应用中,也很少考虑电路保护,我觉着现在芯片内部基本做的都很全面了,所以外部保护也不需要考虑太多。 我听到最多的保护也就是TVS和熔丝了,这两个用的还算比较多,对于我来说。 以前只听过熔丝 ...…

查看全部问答>

各位老师,学生想问下这个肖特基二极管在电路中具体的作用是什么?

各位老师,学生想问下这个肖特基二极管在电路中具体的作用是什么? 因为我百度那看得不太清楚~谢谢各位老师…

查看全部问答>