www.pudn.com > huoniu-for_128M(NAND)-FLASH).zip > CRC.c, change:2008-08-21,size:4388b


/******************** (C) COPYRIGHT 2008 STMicroelectronics ******************** 
* 文件名称: stm32f10x_crc.c 
* 程序作者: MCD Application Team 
* 程序版本: V2.0.2 
* 编制日期: 07/11/2008 
* 功能描述: 这个文件提供了所有CRC的固件函数. 
******************************************************************************** 
* 目前的固件的目的是为客户提供关于他们的产品的编码信息以便于节省他们时间。 
* 结果, 意法半导体将不会为此承担任何直接,间接或相应的损害赔偿方面的任何索赔要求, 
* 例如固件或使用所作的客户编码中他涉嫌包含与他们的相关产品的信息。 
*******************************************************************************/ 
 
/* 包涵的文件 ------------------------------------------------------------------*/ 
#include "stm32f10x_crc.h" 
 
/* 自用类型 -----------------------------------------------------------*/ 
/* 自用定义 ------------------------------------------------------------*/ 
 
/* CR register bit mask */ 
#define CR_RESET_Set    ((u32)0x00000001) 
 
/* 自用宏 -------------------------------------------------------------*/ 
/* 自用变量 ---------------------------------------------------------*/ 
/* 自用函数原型 -----------------------------------------------*/ 
/* 自用函数 ---------------------------------------------------------*/ 
 
/******************************************************************************* 
* 函数名称: CRC_ResetDR 
* 功能描述: Resets the CRC Data register (DR)[复位CRC数据寄存器]. 
* 输入参数: None 
* 输出参数: None 
* 返回参数: None 
*******************************************************************************/ 
void CRC_ResetDR(void) 
{ 
  /* Reset CRC generator [复位CRC发生器]*/ 
  CRC->CR = CR_RESET_Set; 
} 
/******************************************************************************* 
* 函数名称: CRC_CalcCRC 
* 功能描述: Computes the 32-bit CRC of a given data word(32-bit)[计算已知字的32位CRC]. 
* 输入参数: - Data: data word(32-bit) to compute its CRC[待计算CRC的数据字] 
* 输出参数: None 
* 返回参数: 32-bit CRC[32位CRC码] 
*******************************************************************************/ 
u32 CRC_CalcCRC(u32 Data) 
{ 
  CRC->DR = Data; 
   
  return (CRC->DR); 
} 
 
/******************************************************************************* 
* 函数名称: CRC_CalcBlockCRC 
* 功能描述: Computes the 32-bit CRC of a given buffer of data word(32-bit)[计算一个缓冲区的数据的32位CRC]. 
* 输入参数: - pBuffer: pointer to the buffer containing the data to be 
*                    computed[指向包含需要计算数据的缓冲区的指针] 
*           - BufferLength: length of the buffer to be computed [待计算的缓冲区的长度] 
* 输出参数: None 
* 返回参数: 32-bit CRC[32位CRC码] 
*******************************************************************************/ 
u32 CRC_CalcBlockCRC(u32 pBuffer[], u32 BufferLength) 
{ 
  u32 index = 0; 
   
  for(index = 0; index < BufferLength; index++) 
  { 
    CRC->DR = pBuffer[index]; 
  } 
 
  return (CRC->DR); 
} 
 
/******************************************************************************* 
* 函数名称: CRC_GetCRC 
* 功能描述: Returns the current CRC value[返回当前的CRC值]. 
* 输入参数: None 
* 输出参数: None 
* 返回参数: 32-bit CRC[32位CRC码] 
*******************************************************************************/ 
u32 CRC_GetCRC(void) 
{ 
  return (CRC->DR); 
} 
 
/******************************************************************************* 
* 函数名称: CRC_SetIDRegister 
* 功能描述: Stores a 8-bit data in the Independent Data(ID) register[在独立的数据寄存器中保存一个8位的数据]. 
* 输入参数: - IDValue: 8-bit value to be stored in the ID register[等待保存到独立的数据寄存器中8位的数据值] 
* 输出参数: None 
* 返回参数: None 
*******************************************************************************/ 
void CRC_SetIDRegister(u8 IDValue) 
{ 
  CRC->IDR = IDValue; 
} 
 
/******************************************************************************* 
* 函数名称: CRC_GetIDRegister 
* 功能描述: Returns the 8-bit data stored in the Independent Data(ID) register[返回保存到独立的数据寄存器中8位的数据] 
* 输入参数: None 
* 输出参数: None 
* 返回参数: 8-bit value of the ID register [独立的数据寄存器的8位数值] 
*******************************************************************************/ 
u8 CRC_GetIDRegister(void) 
{ 
  return (CRC->IDR); 
} 
 
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/