OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6450|回复: 12

stm32中,FSMC(可变静态存储控制器)具体是什么功能,在LCD显示实验中起到什么作用,纠结死了

[复制链接]

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-9-6
在线时间
30 小时
发表于 2016-9-23 16:33:26 | 显示全部楼层 |阅读模式
1金钱

最佳答案

查看完整内容[请看2#楼]

问淘宝技术了,使用FSMC可以使得 硬件时序来发送8080时序数据的速度更快,不用FSMC同样可以使LCD显示。二者只是速度问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-9-6
在线时间
30 小时
 楼主| 发表于 2016-9-23 16:33:27 | 显示全部楼层
问淘宝技术了,使用FSMC可以使得 硬件时序来发送8080时序数据的速度更快,不用FSMC同样可以使LCD显示。二者只是速度问题。
回复

使用道具 举报

17

主题

231

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2085
金钱
2085
注册时间
2016-8-8
在线时间
362 小时
发表于 2016-9-23 16:45:46 | 显示全部楼层
STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连,把TFTLCD当成一个SRAM来用,就可以用STM32来操作LCD了,我是这么理解的,我也是菜鸟一枚,不对请指正
黑夜给了我黑色的眼睛,我却用它来寻找白花花的银子,黄灿灿的金子,以及红彤彤的毛爷爷
回复

使用道具 举报

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-9-6
在线时间
30 小时
 楼主| 发表于 2016-9-23 16:58:28 | 显示全部楼层
守候ocean 发表于 2016-9-23 16:45
STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连,把TFTLCD当成一个SRAM ...

STM32为什么不能直接IO口复用后接到LCD上,控制LCD上的控制器呢?非得通过FSMC把LCD当做SRAM,一直没理解这个FSMC在LCD显示实验中扮演的角色。
回复

使用道具 举报

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-9-6
在线时间
30 小时
 楼主| 发表于 2016-9-23 17:03:06 | 显示全部楼层
守候ocean 发表于 2016-9-23 16:45
STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连,把TFTLCD当成一个SRAM ...

还有就是OLED实验可以直接端口复用到OLED控制器以达到OLED显示字符的目的,LCD为什么这么麻烦
回复

使用道具 举报

12

主题

101

帖子

0

精华

高级会员

Rank: 4

积分
963
金钱
963
注册时间
2016-3-16
在线时间
109 小时
发表于 2016-9-23 19:19:13 | 显示全部楼层
本帖最后由 若然落木 于 2016-9-23 19:26 编辑

个人认为,他的作用本来是用来访问外部存储空间,根据外部存储器的时序,设置FSMC访问时序,这样就可以当作内部寄存器访问模式来执行读取操作。比如外接SRAM,那么按照该器件时序设置好FSMC。此时比如让asd指向FSMC内地址,就可以读写asd,如变量a=asd;那么此时FSMC硬件会按照设置时序自动访问外部SRAM该地址的数据。asd=a;FSMC自动把a的数据按照设置时序写入外部SRAM的该地址。
这样的好处是,很方便向访问内部寄存器一样简单来访问外部SRAM数据,不用程序来读取外部数据,而用硬件会更快。FSMC提供了一个更方便更快的方案来访问外部SRAM,如果没有的话,你就要自己照着外部存储器时序来编写程序,进行软件访问。

LCD之所以用FSMC驱动原因,是LCD控制时序满足FSMC的其中一个时序(FSMC可以设置成LCD控制时序),这样以访问外部存储器的方式达到LCD控制过程。
这样做的好处只有一个,那就是更快,FSMC用硬件来完成访问,如果不用的话,那你大可根据LCD控制时序来用程序控制LCD。显然硬件访问会比你软件模拟时序更快。
个人见解,,,,,,,,,
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-10-3 09:57:39 | 显示全部楼层
若然落木 发表于 2016-9-23 19:19
个人认为,他的作用本来是用来访问外部存储空间,根据外部存储器的时序,设置FSMC访问时序,这样就可以当作 ...

请问,还在吗?为什么asd指向的是FSMC访问的却是SRAM
回复

使用道具 举报

12

主题

101

帖子

0

精华

高级会员

Rank: 4

积分
963
金钱
963
注册时间
2016-3-16
在线时间
109 小时
发表于 2016-10-5 17:02:22 | 显示全部楼层
慕名兰 发表于 2016-10-3 09:57
请问,还在吗?为什么asd指向的是FSMC访问的却是SRAM

可以自己设置,这是打个比方,就像原子程序中#define LCD_BASE ((u32)(0x6C000000 | 0x0000007E)) 将LCD_BASE定义为后面的地址,而后面的地址就属于FSMC地址范围。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-10-5 19:45:36 | 显示全部楼层
若然落木 发表于 2016-10-5 17:02
可以自己设置,这是打个比方,就像原子程序中#define LCD_BASE ((u32)(0x6C000000 | 0x0000007E)) 将LCD_ ...

我是这样想的,不知道对不对,FSMC与SRAM通信的话,SRAM的存储器被映射到FSMC的BANK1中,所以操作FSMC的内存就是操作SRAM的内存
回复

使用道具 举报

12

主题

101

帖子

0

精华

高级会员

Rank: 4

积分
963
金钱
963
注册时间
2016-3-16
在线时间
109 小时
发表于 2016-10-5 22:25:03 | 显示全部楼层
慕名兰 发表于 2016-10-5 19:45
我是这样想的,不知道对不对,FSMC与SRAM通信的话,SRAM的存储器被映射到FSMC的BANK1中,所以操作FSMC的 ...

访问外部SRAM,通过FSMC相当于把外部SRAM存储空间地址映射到FSMC分配的地址,通过访问FSMC的地址,直接就对SRAM外部存储器进行读写,而没有FSMC的话,就得每次根据外部时序来访问外部SRAM。肯定会比FSMC慢,而且你还要编子函数来调用。反正我是把它当作地址映射理解,当然个人理解。
回复

使用道具 举报

12

主题

101

帖子

0

精华

高级会员

Rank: 4

积分
963
金钱
963
注册时间
2016-3-16
在线时间
109 小时
发表于 2016-10-5 22:26:15 | 显示全部楼层
慕名兰 发表于 2016-10-5 19:45
我是这样想的,不知道对不对,FSMC与SRAM通信的话,SRAM的存储器被映射到FSMC的BANK1中,所以操作FSMC的 ...

我觉得可以这样理解吧。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-10-6 01:02:26 | 显示全部楼层
若然落木 发表于 2016-10-5 22:26
我觉得可以这样理解吧。

恩恩,谢谢耐心回答
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2016-10-20
在线时间
10 小时
发表于 2016-11-16 09:59:58 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 16:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表