STM32F407读写SRAM

STM32内部的RAM空间有限,当处理大数组时就不够用了,需要外扩RAM,给STM32芯片扩展内存与给PC扩展内存的原理是一样的。

1. SRAM(1MB)

表1 SRAM的引脚说明

图1 芯片引脚

2、STM32的FSMC控制器

 

图2 STM32的FSMC地址映射

因此每个Bank最大管理的空间是256M,而每个Bank有分为4个Sector,每个Sector管理的空间为64MB,FSMC控制器的FSMC_NE就决定了使用哪个Sector,例如下图板子的FSMC_NE3连接到SRAM的片选,因此地址空间就是:

0x6800 0000-0x6BFF FFFF

图3 原理图

FSMC控制寄存器主要是以下三类BCRx、RTRx、BWTRx,x对应1,2,3,4,四个Bank,也对应着NE1、NE2、NE3、NE4

 

 

其中在库函数中BCR,BTR合并成BTCR,

BTCR[0]是BCR1
BTCR[1]是BTR1

BTCR[2]是BCR2
BTCR[3]是BTR2

BTCR[4]是BCR3
BTCR[5]是BTR3

BTCR[6]是BCR4
BTCR[7]是BTR4

注意:当外扩了SRAM,可以适当设置,F407可以和内部SRAM一样使用。

1、system_stm32f4xx.c把宏定义打开

2、检查自己的SRAM使用的NEx,默认是NE2(PG9),以及引脚,如果不一致需要修改初始化代码。例如我的使用的就是NE3,就需要修改GPIOG->OSPEEDR = 0x00300fff等等;

3、Keil设置

4、定义数组,unsigned int Sram_Buffer[262140] __attribute__((section("EXRAM")));

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值