您的位置:控制工程论坛网论坛 » 教程与手册 » 汉化STM32F2.02版固件库之二十三(FSMC)

常青树

常青树   |   当前状态:在线

总积分:1421  2025年可用积分:0

注册时间: 2008-09-28

最后登录时间: 2012-05-30

空间 发短消息加为好友

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

常青树  发表于 2008/10/13 7:23:04      1599 查看 0 回复  [上一主题]  [下一主题]

手机阅读

********************
* 文件名称: stm32f10x_fsmc.c
* 程序作者: MCD Application Team
* 程序版本: V2.0.2
* 功能描述: 这个文件提供了所有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;
  }  

1楼 0 0 回复