首先,你得稍微了解一下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也有很诡异的地方。如
为什么呢?那时我还以为软件或硬件还是芯片有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左右.
浅谈Sci-Hub和Handshake 工作原理
小米6最新消息:提到小米6除了高通835你还能想到什么?
手机立体声声频子系统设计(LM4888)
中控智慧AI会议盛大开启, 助推AI监控应用在全国各地落地生花
L车改装浅析及性能测试
STM32之FSMC驱动LCD屏应用
图文详解:如何根据电线配最佳的空气开关
寺库首次拍卖亮相!互联网+拍卖打造新时代传统文化艺术盛宴
华为P30系列日出货量超10万台华为P30 Pro更受欢迎
区块链+怎样释放出“洪荒之力”
宏远谐波机器人集成执行模块预计将在今年10月份实现量产
物联网发动机 中科创达IoT解决方案亮相CES
天合光能助力新型电力系统变革
PCB传统四层堆叠的缺点
中国制造正在迎来一波新趋势——5G联结万物的浪潮下,从“制造”向“智造”转变
基于SaaS的人工智能培训将改变游戏规则
三大特高压直流电向华东电网输送电量突破5000亿千瓦时
ZPDN-Z1208C-S005光电二极管阵列概述
V4L2框架概述 Xilinx视频编解码详解
数字电源补偿器设计流程解密