]> jspc29.x-matter.uni-frankfurt.de Git - mvd_firmware.git/blob
ef0c047d8ff434c1898759315da4220fdd960789
[mvd_firmware.git] /
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f10x_crc.c\r
4   * @author  MCD Application Team\r
5   * @version V3.5.0\r
6   * @date    11-March-2011\r
7   * @brief   This file provides all the CRC firmware functions.\r
8   ******************************************************************************\r
9   * @attention\r
10   *\r
11   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
12   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
13   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
14   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
15   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
16   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
17   *\r
18   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>\r
19   ******************************************************************************\r
20   */\r
21 \r
22 /* Includes ------------------------------------------------------------------*/\r
23 #include "stm32f10x_crc.h"\r
24 \r
25 /** @addtogroup STM32F10x_StdPeriph_Driver\r
26   * @{\r
27   */\r
28 \r
29 /** @defgroup CRC \r
30   * @brief CRC driver modules\r
31   * @{\r
32   */\r
33 \r
34 /** @defgroup CRC_Private_TypesDefinitions\r
35   * @{\r
36   */\r
37 \r
38 /**\r
39   * @}\r
40   */\r
41 \r
42 /** @defgroup CRC_Private_Defines\r
43   * @{\r
44   */\r
45 \r
46 /**\r
47   * @}\r
48   */\r
49 \r
50 /** @defgroup CRC_Private_Macros\r
51   * @{\r
52   */\r
53 \r
54 /**\r
55   * @}\r
56   */\r
57 \r
58 /** @defgroup CRC_Private_Variables\r
59   * @{\r
60   */\r
61 \r
62 /**\r
63   * @}\r
64   */\r
65 \r
66 /** @defgroup CRC_Private_FunctionPrototypes\r
67   * @{\r
68   */\r
69 \r
70 /**\r
71   * @}\r
72   */\r
73 \r
74 /** @defgroup CRC_Private_Functions\r
75   * @{\r
76   */\r
77 \r
78 /**\r
79   * @brief  Resets the CRC Data register (DR).\r
80   * @param  None\r
81   * @retval None\r
82   */\r
83 void CRC_ResetDR(void)\r
84 {\r
85   /* Reset CRC generator */\r
86   CRC->CR = CRC_CR_RESET;\r
87 }\r
88 \r
89 /**\r
90   * @brief  Computes the 32-bit CRC of a given data word(32-bit).\r
91   * @param  Data: data word(32-bit) to compute its CRC\r
92   * @retval 32-bit CRC\r
93   */\r
94 uint32_t CRC_CalcCRC(uint32_t Data)\r
95 {\r
96   CRC->DR = Data;\r
97   \r
98   return (CRC->DR);\r
99 }\r
100 \r
101 /**\r
102   * @brief  Computes the 32-bit CRC of a given buffer of data word(32-bit).\r
103   * @param  pBuffer: pointer to the buffer containing the data to be computed\r
104   * @param  BufferLength: length of the buffer to be computed                                   \r
105   * @retval 32-bit CRC\r
106   */\r
107 uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)\r
108 {\r
109   uint32_t index = 0;\r
110   \r
111   for(index = 0; index < BufferLength; index++)\r
112   {\r
113     CRC->DR = pBuffer[index];\r
114   }\r
115   return (CRC->DR);\r
116 }\r
117 \r
118 /**\r
119   * @brief  Returns the current CRC value.\r
120   * @param  None\r
121   * @retval 32-bit CRC\r
122   */\r
123 uint32_t CRC_GetCRC(void)\r
124 {\r
125   return (CRC->DR);\r
126 }\r
127 \r
128 /**\r
129   * @brief  Stores a 8-bit data in the Independent Data(ID) register.\r
130   * @param  IDValue: 8-bit value to be stored in the ID register                                        \r
131   * @retval None\r
132   */\r
133 void CRC_SetIDRegister(uint8_t IDValue)\r
134 {\r
135   CRC->IDR = IDValue;\r
136 }\r
137 \r
138 /**\r
139   * @brief  Returns the 8-bit data stored in the Independent Data(ID) register\r
140   * @param  None\r
141   * @retval 8-bit value of the ID register \r
142   */\r
143 uint8_t CRC_GetIDRegister(void)\r
144 {\r
145   return (CRC->IDR);\r
146 }\r
147 \r
148 /**\r
149   * @}\r
150   */\r
151 \r
152 /**\r
153   * @}\r
154   */\r
155 \r
156 /**\r
157   * @}\r
158   */\r
159 \r
160 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/\r