原创 汉化STM32F2.02版固件库之二十三(FSMC)

2008-8-13 20:32 8336 6 12 分类: MCU/ 嵌入式

/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* 文件名称: stm32f10x_fsmc.c
* 程序作者: MCD Application Team
* 程序版本: V2.0.2
* 编制日期: 07/11/2008
* 功能描述: 这个文件提供了所有FSMC(Flexible static memory controller[可擦写的静态存储器控制器])的固件函数.
********************************************************************************
* 目前的固件的目的是为客户提供关于他们的产品的编码信息以便于节省他们时间。
* 结果, 意法半导体将不会为此承担任何直接,间接或相应的损害赔偿方面的任何索赔要求,
* 例如固件或使用所作的客户编码中他涉嫌包含与他们的相关产品的信息。
*******************************************************************************/


/* 包涵的文件 ------------------------------------------------------------------*/
#include "stm32f10x_fsmc.h"
#include "stm32f10x_rcc.h"


/* 自用类型 -----------------------------------------------------------*/
/* 自用定义 ------------------------------------------------------------*/
/* --------------------- FSMC registers bit mask ---------------------------- */
/* FSMC BCRx Mask */
#define BCR_MBKEN_Set                       ((u32)0x00000001)
#define BCR_MBKEN_Reset                     ((u32)0x000FFFFE)
#define BCR_FACCEN_Set                      ((u32)0x00000040)


/* FSMC PCRx Mask */
#define PCR_PBKEN_Set                       ((u32)0x00000004)
#define PCR_PBKEN_Reset                     ((u32)0x000FFFFB)
#define PCR_ECCEN_Set                       ((u32)0x00000040)
#define PCR_ECCEN_Reset                     ((u32)0x000FFFBF)
#define PCR_MemoryType_NAND                 ((u32)0x00000008)


/* 自用宏 -----------------------------------------------------------*/
/* 自用变量 ---------------------------------------------------------*/
/* 自用函数原型 -----------------------------------------------------*/
/* 自用函数 ---------------------------------------------------------*/


/*******************************************************************************
* 函数名称: FSMC_NORSRAMDeInit
* 功能描述: Deinitializes the FSMC NOR/SRAM Banks registers to their default
*                  reset values[取消FSMC NOR/SRAM 体寄存器的初始化还原到他们的默认值].
* 输入参数: - FSMC_Bank: specifies the FSMC Bank to be used[指定使用的FSMC体]
*                    这个参数可以是下面的值之一:
*                       - FSMC_Bank1_NORSRAM1: FSMC 体1 NOR/SRAM1 
*                       - FSMC_Bank1_NORSRAM2: FSMC 体1 NOR/SRAM2
*                       - FSMC_Bank1_NORSRAM3: FSMC 体1 NOR/SRAM3
*                       - FSMC_Bank1_NORSRAM4: FSMC 体1 NOR/SRAM4                      
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void FSMC_NORSRAMDeInit(u32 FSMC_Bank)
{
  /* Check the parameter [检查参数]*/
  assert_param(IS_FSMC_NORSRAM_BANK(FSMC_Bank));
 
  /* FSMC_Bank1_NORSRAM1 */
  if(FSMC_Bank == FSMC_Bank1_NORSRAM1)
  {
    FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030DB;   
  }
  /* FSMC_Bank1_NORSRAM2,  FSMC_Bank1_NORSRAM3 or FSMC_Bank1_NORSRAM4 */
  else
  {  
    FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030D2;
  }


  FSMC_Bank1->BTCR[FSMC_Bank + 1] = 0x0FFFFFFF;
  FSMC_Bank1E->BWTR[FSMC_Bank] = 0x0FFFFFFF; 
}


/*******************************************************************************
* 函数名称: FSMC_NANDDeInit
* 功能描述: Deinitializes the FSMC NAND Banks registers to their default
*                  reset values[取消FSMC NAND体寄存器的初始化还原到他们的默认值].
* 输入参数: - FSMC_Bank: specifies the FSMC Bank to be used[指定使用的FSMC体]
*                    这个参数可以是下面的值之一:
*                       - FSMC_Bank2_NAND: FSMC Bank2 NAND
*                       - FSMC_Bank3_NAND: FSMC Bank3 NAND                      
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void FSMC_NANDDeInit(u32 FSMC_Bank)
{
  /* Check the parameter [检查参数]*/
  assert_param(IS_FSMC_NAND_BANK(FSMC_Bank));
 
  if(FSMC_Bank == FSMC_Bank2_NAND)
  {
    /* Set the FSMC_Bank2 registers to their reset values [设置FSMC_Bank2寄存器到他们的复位值]*/
    FSMC_Bank2->PCR2 = 0x00000018;
    FSMC_Bank2->SR2 = 0x00000040;
    FSMC_Bank2->PMEM2 = 0xFCFCFCFC;
    FSMC_Bank2->PATT2 = 0xFCFCFCFC; 
  }
  /* FSMC_Bank3_NAND */ 
  else
  {
    /* Set the FSMC_Bank3 registers to their reset values [设置FSMC_Bank3寄存器到他们的复位值]*/
    FSMC_Bank3->PCR3 = 0x00000018;
    FSMC_Bank3->SR3 = 0x00000040;
    FSMC_Bank3->PMEM3 = 0xFCFCFCFC;
    FSMC_Bank3->PATT3 = 0xFCFCFCFC;
  } 
}


完整stm32f10x_fsmc.c点击下载,请您在下载的同时到左上角顶我一下,以示支持!谢谢

文章评论6条评论)

登录后参与讨论

用户401905 2010-9-2 21:43

顶,学习了

用户1622126 2010-8-24 16:46

感谢楼主贡献

用户270825 2010-5-12 11:23

楼主辛苦拉

用户1401244 2009-1-14 22:13

顶!

用户206061 2009-1-5 08:58

en

用户1319971 2008-9-15 16:31

辛苦了!

用户53639 2006-9-28 15:38

值得学习!
相关推荐阅读
小可歌 2016-05-31 13:54
【转帖】模拟电路的四重境界
无意中看到这个文章,虽然自己也搞了4 年模电了,但后看完之后发现自己原来根本就没有入门阿!现发上来和大家共享!·············   复旦攻读微电子专业模拟芯片设计方向研究生开始到...
小可歌 2016-05-28 07:14
发帖庆祝用app inventor的录音机保存MP3格式录音成功!
看似简单的功能,可是把我难够呛,刚学APP INVENTOR没几天,手里的两本书翻来掉去的看了N遍。APP INVENTOR的录音机默认是保存录音文件为3GP格式,我想保存成MP3文件就没有地方找...
小可歌 2016-02-22 08:56
C语言Printf格式,调试最好的助手!
    C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为...
小可歌 2016-02-19 15:19
对于SRAM的地址线和数据线是可以打乱顺序用的!!!!
因为SRAM的地址具有唯一性,其实数据线也有唯一性。 也就是A0~A18,D0~D15,都是唯一的。 正常是:A0~A18,接FSMC的A0~A18。 D0~D15,接FSMC的D0~D15. 假...
小可歌 2016-02-02 11:29
Linux系统下基本命令
Linux系统下基本命令: 要区分大小写  uname 显示版本信息(同win2K的 ver)  dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)  pwd...
小可歌 2016-02-02 11:28
DOS命令大全
对于一般的网民来说,dos命令是什么真的不知道,dos命令有些什么作用也不知道。但是黑客们却精通dos命令,经常利用dos命令进行各种任务,以达到自己的目的。下面笔者为大家汇总出dos命令大全,希...
我要评论
6
6
关闭 站长推荐上一条 /2 下一条