From 1d3861ef93f8423176c6010ab606abdab00a7cbd Mon Sep 17 00:00:00 2001
From: bnewbold <bnewbold@robocracy.org>
Date: Wed, 31 Mar 2010 08:52:45 +0800
Subject: Major hierarchy reorganization; see README. copy-to-ide and Makefile
 updated to conform; .gitignore added; LICENSE added

---
 stm32lib/src/stm32f10x_crc.c | 114 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 stm32lib/src/stm32f10x_crc.c

(limited to 'stm32lib/src/stm32f10x_crc.c')

diff --git a/stm32lib/src/stm32f10x_crc.c b/stm32lib/src/stm32f10x_crc.c
new file mode 100644
index 0000000..ac8c7c4
--- /dev/null
+++ b/stm32lib/src/stm32f10x_crc.c
@@ -0,0 +1,114 @@
+/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
+* File Name          : stm32f10x_crc.c
+* Author             : MCD Application Team
+* Version            : V2.0.2
+* Date               : 07/11/2008
+* Description        : This file provides all the CRC firmware functions.
+********************************************************************************
+* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
+* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
+* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
+* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
+* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
+* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+*******************************************************************************/
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f10x_crc.h"
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+
+/* CR register bit mask */
+#define CR_RESET_Set    ((u32)0x00000001)
+
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/*******************************************************************************
+* Function Name  : CRC_ResetDR
+* Description    : Resets the CRC Data register (DR).
+* Input          : None
+* Output         : None
+* Return         : None
+*******************************************************************************/
+void CRC_ResetDR(void)
+{
+  /* Reset CRC generator */
+  CRC->CR = CR_RESET_Set;
+}
+
+/*******************************************************************************
+* Function Name  : CRC_CalcCRC
+* Description    : Computes the 32-bit CRC of a given data word(32-bit).
+* Input          : - Data: data word(32-bit) to compute its CRC
+* Output         : None
+* Return         : 32-bit CRC
+*******************************************************************************/
+u32 CRC_CalcCRC(u32 Data)
+{
+  CRC->DR = Data;
+  
+  return (CRC->DR);
+}
+
+/*******************************************************************************
+* Function Name  : CRC_CalcBlockCRC
+* Description    : Computes the 32-bit CRC of a given buffer of data word(32-bit).
+* Input          : - pBuffer: pointer to the buffer containing the data to be 
+*                    computed
+*                  - BufferLength: length of the buffer to be computed					
+* Output         : None
+* Return         : 32-bit CRC
+*******************************************************************************/
+u32 CRC_CalcBlockCRC(u32 pBuffer[], u32 BufferLength)
+{
+  u32 index = 0;
+  
+  for(index = 0; index < BufferLength; index++)
+  {
+    CRC->DR = pBuffer[index];
+  }
+
+  return (CRC->DR);
+}
+
+/*******************************************************************************
+* Function Name  : CRC_GetCRC
+* Description    : Returns the current CRC value.
+* Input          : None
+* Output         : None
+* Return         : 32-bit CRC
+*******************************************************************************/
+u32 CRC_GetCRC(void)
+{
+  return (CRC->DR);
+}
+
+/*******************************************************************************
+* Function Name  : CRC_SetIDRegister
+* Description    : Stores a 8-bit data in the Independent Data(ID) register.
+* Input          : - IDValue: 8-bit value to be stored in the ID register 					
+* Output         : None
+* Return         : None
+*******************************************************************************/
+void CRC_SetIDRegister(u8 IDValue)
+{
+  CRC->IDR = IDValue;
+}
+
+/*******************************************************************************
+* Function Name  : CRC_GetIDRegister
+* Description    : Returns the 8-bit data stored in the Independent Data(ID) register
+* Input          : None
+* Output         : None
+* Return         : 8-bit value of the ID register 
+*******************************************************************************/
+u8 CRC_GetIDRegister(void)
+{
+  return (CRC->IDR);
+}
+
+/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
-- 
cgit v1.2.3