OpenEdv-开源电子网

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

请问下,STM32外扩SRAM_FSMC驱动TFT,这个怎么弄?

[复制链接]

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
发表于 2012-11-16 09:58:47 | 显示全部楼层 |阅读模式
   因为项目要做UCGUI,同时还是大屏,所以速度跟不上,打算外扩SRAM.
   以前没接触过外扩SRAM,谁能给我讲讲这个东西的思路呀.
   看了下战舰的例程,不知道外部SRAM实验和驱动TFT是不是一样,有什么不同的地方吗?如果有例程参考就更好了。
   谢谢了!
一个上蹿下跳的猴子~~~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
 楼主| 发表于 2012-11-16 11:40:52 | 显示全部楼层
现在我开始参考别人的例程准备SRAM读写实验。
按照例程上来,我的读写实验OK!

但是我自己去修改块的区,实验例程是块1区3。

我想将它修改成块1区4.
第一修改地址,即0x6800 0000 改成0x6c00 0000
第二修改地址总线,将PG10,改成GP12.
第三修改初始化,将FMSC_Bank1_NORSRAM3 全部改成 FMSC_Bank1_NORSRAM4

但是,失败了,读写不成功。
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

27

主题

148

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2012-7-25
在线时间
0 小时
发表于 2012-11-16 16:57:47 | 显示全部楼层

第二修改地址总线,将PG10,改成GP12.  ?

有个地址也要跟进,而且 G12要连接FSMC功能。            

类似于:

#define Bank1_LCD_D    ((uint32_t)0x64000080)    //显示区数据地址  
#define Bank1_LCD_C    ((uint32_t)0x64000000)    //显示区指令地址   

另有疑问,BANK3与BANK4作为片选,对应不同的物理引脚,你怎么处理的?

                        

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-16 20:13:05 | 显示全部楼层
回复【楼主位】wolfdong7:
---------------------------------
战舰板SRAM和TFT的例程都有,单独的也有,和在一起的也有.参考就是了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
 楼主| 发表于 2012-11-16 23:36:09 | 显示全部楼层
回复【3楼】maninman1981:
---------------------------------
第二修改地址总线,将PG10,改成GP12.  ?

有个地址也要跟进,而且 G12要连接FSMC功能。   
嗯,这个地址我跟进了。我就是改第一种,将0x6800 0000 改成0x6c00 0000 

你的#define Bank1_LCD_D    ((uint32_t)0x64000080)    //显示区数据地址   
#define Bank1_LCD_C    ((uint32_t)0x64000000)    //显示区指令地址   
是用来修改LCD的,我目前只是来用FSMC来外扩SRAM来读写实验。

不过如果也要改LCD片选区,我是这样改的:
typedef struct
{
     __IO uint16_t LCD_REG;
     __IO uint16_t LCD_RAM;
}LCD_TypeDef;

#define LCD_BASE ((uint32_t) (0x6c000000)) //将68000000改成6C00 0000
#define LCD_BASE ((uint32_t) LCD_BASE) //选区的地址是A0
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
 楼主| 发表于 2012-11-16 23:36:52 | 显示全部楼层
回复【3楼】maninman1981:
---------------------------------
对于  BANK3与BANK4作为片选,对应不同的物理引脚,你怎么处理的?


我还不知道怎么处理,呵呵!
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
 楼主| 发表于 2012-11-16 23:48:15 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
噢,刚刚看了下第47章,的确有在一起的。我还以为跟MINI的教程一样呢。

有个疑问,就是我能不能把FSMC驱动LCD的片选和FSMC_SRAM的片选一样。都是BANK1_NORSRAM3

我是这样理解的,把他们放在一起,都是NORSRAM3,这样FSMC驱动LCD直接以外扩的SRAM来跑了。

不知道理解对不对,还是跟47一样,需要申请内存。 
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-17 00:26:24 | 显示全部楼层
回复【7楼】wolfdong7:
---------------------------------
不对.
必须用不同的片选,否则就乱套了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
 楼主| 发表于 2012-11-17 10:14:54 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
谢谢原子哥的指导。
那么这样要申请内存来做了。我好好参考下你的例程,学习学习下。
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 22:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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