]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/ST_Library/include/stm32f7xx_hal_crc_ex.h
Final V8.2.1 release ready for tagging:
[freertos] / FreeRTOS / Demo / CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil / ST_Library / include / stm32f7xx_hal_crc_ex.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f7xx_hal_crc_ex.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0RC1\r
6   * @date    24-March-2015\r
7   * @brief   Header file of CRC HAL extension module.\r
8   ******************************************************************************\r
9   * @attention\r
10   *\r
11   * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>\r
12   *\r
13   * Redistribution and use in source and binary forms, with or without modification,\r
14   * are permitted provided that the following conditions are met:\r
15   *   1. Redistributions of source code must retain the above copyright notice,\r
16   *      this list of conditions and the following disclaimer.\r
17   *   2. Redistributions in binary form must reproduce the above copyright notice,\r
18   *      this list of conditions and the following disclaimer in the documentation\r
19   *      and/or other materials provided with the distribution.\r
20   *   3. Neither the name of STMicroelectronics nor the names of its contributors\r
21   *      may be used to endorse or promote products derived from this software\r
22   *      without specific prior written permission.\r
23   *\r
24   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
25   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
26   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
27   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
28   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
29   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
30   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
31   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
32   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
33   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
34   *\r
35   ******************************************************************************\r
36   */ \r
37 \r
38 /* Define to prevent recursive inclusion -------------------------------------*/\r
39 #ifndef __STM32F7xx_HAL_CRC_EX_H\r
40 #define __STM32F7xx_HAL_CRC_EX_H\r
41 \r
42 #ifdef __cplusplus\r
43  extern "C" {\r
44 #endif\r
45 \r
46 /* Includes ------------------------------------------------------------------*/\r
47 #include "stm32f7xx_hal_def.h"\r
48 \r
49 /** @addtogroup STM32F7xx_HAL_Driver\r
50   * @{\r
51   */\r
52 \r
53 /** @defgroup CRCEx CRCEx\r
54   * @{\r
55   */ \r
56 \r
57 /* Exported types ------------------------------------------------------------*/ \r
58 /* Exported constants --------------------------------------------------------*/\r
59 \r
60 /** @defgroup CRCEx_Exported_Constants CRC Extended exported constants\r
61  * @{\r
62  */\r
63 \r
64 /** @defgroup CRCEx_Input_Data_Inversion CRC Extended input data inversion modes\r
65   * @{\r
66   */\r
67 #define CRC_INPUTDATA_INVERSION_NONE              ((uint32_t)0x00000000)\r
68 #define CRC_INPUTDATA_INVERSION_BYTE              ((uint32_t)CRC_CR_REV_IN_0)\r
69 #define CRC_INPUTDATA_INVERSION_HALFWORD          ((uint32_t)CRC_CR_REV_IN_1)\r
70 #define CRC_INPUTDATA_INVERSION_WORD              ((uint32_t)CRC_CR_REV_IN)\r
71 \r
72 #define IS_CRC_INPUTDATA_INVERSION_MODE(__MODE__)     (((__MODE__) == CRC_INPUTDATA_INVERSION_NONE) || \\r
73                                                        ((__MODE__) == CRC_INPUTDATA_INVERSION_BYTE) || \\r
74                                                        ((__MODE__) == CRC_INPUTDATA_INVERSION_HALFWORD) || \\r
75                                                        ((__MODE__) == CRC_INPUTDATA_INVERSION_WORD))\r
76 /**\r
77   * @}\r
78   */\r
79 \r
80 /** @defgroup CRCEx_Output_Data_Inversion CRC Extended output data inversion modes\r
81   * @{\r
82   */\r
83 #define CRC_OUTPUTDATA_INVERSION_DISABLE         ((uint32_t)0x00000000)\r
84 #define CRC_OUTPUTDATA_INVERSION_ENABLE          ((uint32_t)CRC_CR_REV_OUT)\r
85 \r
86 #define IS_CRC_OUTPUTDATA_INVERSION_MODE(__MODE__)    (((__MODE__) == CRC_OUTPUTDATA_INVERSION_DISABLE) || \\r
87                                                        ((__MODE__) == CRC_OUTPUTDATA_INVERSION_ENABLE))\r
88 /**                                               \r
89   * @}\r
90   */\r
91 \r
92 \r
93 /**\r
94  * @}\r
95  */\r
96 /* Exported macro ------------------------------------------------------------*/\r
97 \r
98 /** @defgroup CRCEx_Exported_Macros CRC Extended exported macros\r
99   * @{\r
100   */\r
101     \r
102 /**\r
103   * @brief  Set CRC output reversal\r
104   * @param  __HANDLE__    : CRC handle\r
105   * @retval None.\r
106   */\r
107 #define  __HAL_CRC_OUTPUTREVERSAL_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_REV_OUT)   \r
108 \r
109 /**\r
110   * @brief  Unset CRC output reversal\r
111   * @param  __HANDLE__    : CRC handle\r
112   * @retval None.\r
113   */\r
114 #define __HAL_CRC_OUTPUTREVERSAL_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(CRC_CR_REV_OUT))   \r
115 \r
116 /**\r
117   * @brief  Set CRC non-default polynomial\r
118   * @param  __HANDLE__    : CRC handle\r
119   * @param  __POLYNOMIAL__: 7, 8, 16 or 32-bit polynomial  \r
120   * @retval None.\r
121   */\r
122 #define __HAL_CRC_POLYNOMIAL_CONFIG(__HANDLE__, __POLYNOMIAL__) ((__HANDLE__)->Instance->POL = (__POLYNOMIAL__))\r
123 \r
124 /**\r
125   * @}\r
126   */\r
127 \r
128 \r
129 /** @defgroup CRCEx_Exported_Functions CRC Extended Exported Functions\r
130   * @{\r
131   */\r
132 \r
133 /** @defgroup CRCEx_Exported_Functions_Group1 Extended CRC features functions\r
134   * @{\r
135   */\r
136 /* Exported functions --------------------------------------------------------*/\r
137 /* Initialization and de-initialization functions  ****************************/\r
138 HAL_StatusTypeDef HAL_CRCEx_Polynomial_Set(CRC_HandleTypeDef *hcrc, uint32_t Pol, uint32_t PolyLength);\r
139 HAL_StatusTypeDef HAL_CRCEx_Input_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t InputReverseMode);\r
140 HAL_StatusTypeDef HAL_CRCEx_Output_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t OutputReverseMode);\r
141 \r
142 /* Peripheral Control functions ***********************************************/\r
143 /* Peripheral State and Error functions ***************************************/\r
144 \r
145 /**\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   */\r
161   \r
162 #ifdef __cplusplus\r
163 }\r
164 #endif\r
165 \r
166 #endif /* __STM32F7xx_HAL_CRC_EX_H */\r
167 \r
168 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r