打印

请分析以下 system_stm32f10x.c 文件中的一段语句?

[复制链接]
5399|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
test|  楼主 | 2010-1-20 01:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在 system_stm32f10x.c 文件中,有下面一个函数:
SystemInit_ExtMemCtl()
{
......

/*----------------  FSMC Configuration ---------------------------------------*/  
/*----------------  Enable FSMC Bank1_SRAM Bank ------------------------------*/
  
  FSMC_Bank1->BTCR[4] = 0x00001011;
  FSMC_Bank1->BTCR[5] = 0x00000200;
}

FSMC_Bank1 的定义过程如下:
#define FSMC_R_BASE           ((uint32_t)0xA0000000) /*!< FSMC registers base address */

#define FSMC_Bank1_R_BASE     (FSMC_R_BASE + 0x0000) /*!< FSMC Bank1 registers base address */

typedef struct
{
  __IO uint32_t BTCR[8];   
} FSMC_Bank1_TypeDef;

#define FSMC_Bank1          ((FSMC_Bank1_TypeDef *) FSMC_Bank1_R_BASE)


==========================
FSMC_Bank1->BTCR[4] 和 FSMC_Bank1->BTCR[5]
指向的地址是多少?
是不是0xA0000004 和 0xA0000005 ?
指向的分别是哪2个寄存器?
沙发
香水城| | 2010-1-20 17:46 | 只看该作者
是0xA0000010 和 0xA0000014

FSMC_Bank1_BTCR.GIF (18.88 KB )

FSMC_Bank1_BTCR.GIF

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
test + 1
板凳
test|  楼主 | 2010-1-21 19:06 | 只看该作者
谢谢,一时短路了,因为看到  uint32_t BTCR[8];   ,就认为这里的地址不是字节来计的.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

27

帖子

0

粉丝