my fork

Dependents:   Nucleo_blueNRG

Fork of mbed by mbed official

Committer:
filartrix
Date:
Wed Apr 08 14:12:53 2015 +0000
Revision:
97:4298809c7c9e
Parent:
93:e188a91d3eaa
First reale BlueNRG module for nucleo 401 board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 90:cb3d968589d8 1 /**
Kojto 90:cb3d968589d8 2 ******************************************************************************
Kojto 90:cb3d968589d8 3 * @file stm32f0xx_hal_crc_ex.h
Kojto 90:cb3d968589d8 4 * @author MCD Application Team
Kojto 93:e188a91d3eaa 5 * @version V1.2.0
Kojto 93:e188a91d3eaa 6 * @date 11-December-2014
Kojto 90:cb3d968589d8 7 * @brief Header file of CRC HAL extension module.
Kojto 90:cb3d968589d8 8 ******************************************************************************
Kojto 90:cb3d968589d8 9 * @attention
Kojto 90:cb3d968589d8 10 *
Kojto 90:cb3d968589d8 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
Kojto 90:cb3d968589d8 12 *
Kojto 90:cb3d968589d8 13 * Redistribution and use in source and binary forms, with or without modification,
Kojto 90:cb3d968589d8 14 * are permitted provided that the following conditions are met:
Kojto 90:cb3d968589d8 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 90:cb3d968589d8 16 * this list of conditions and the following disclaimer.
Kojto 90:cb3d968589d8 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 90:cb3d968589d8 18 * this list of conditions and the following disclaimer in the documentation
Kojto 90:cb3d968589d8 19 * and/or other materials provided with the distribution.
Kojto 90:cb3d968589d8 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Kojto 90:cb3d968589d8 21 * may be used to endorse or promote products derived from this software
Kojto 90:cb3d968589d8 22 * without specific prior written permission.
Kojto 90:cb3d968589d8 23 *
Kojto 90:cb3d968589d8 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 90:cb3d968589d8 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 90:cb3d968589d8 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 90:cb3d968589d8 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 90:cb3d968589d8 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 90:cb3d968589d8 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 90:cb3d968589d8 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 90:cb3d968589d8 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 90:cb3d968589d8 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 90:cb3d968589d8 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 90:cb3d968589d8 34 *
Kojto 90:cb3d968589d8 35 ******************************************************************************
Kojto 90:cb3d968589d8 36 */
Kojto 90:cb3d968589d8 37
Kojto 90:cb3d968589d8 38 /* Define to prevent recursive inclusion -------------------------------------*/
Kojto 90:cb3d968589d8 39 #ifndef __STM32F0xx_HAL_CRC_EX_H
Kojto 90:cb3d968589d8 40 #define __STM32F0xx_HAL_CRC_EX_H
Kojto 90:cb3d968589d8 41
Kojto 90:cb3d968589d8 42 #ifdef __cplusplus
Kojto 90:cb3d968589d8 43 extern "C" {
Kojto 90:cb3d968589d8 44 #endif
Kojto 90:cb3d968589d8 45
Kojto 90:cb3d968589d8 46 /* Includes ------------------------------------------------------------------*/
Kojto 90:cb3d968589d8 47 #include "stm32f0xx_hal_def.h"
Kojto 90:cb3d968589d8 48
Kojto 90:cb3d968589d8 49 /** @addtogroup STM32F0xx_HAL_Driver
Kojto 90:cb3d968589d8 50 * @{
Kojto 90:cb3d968589d8 51 */
Kojto 90:cb3d968589d8 52
Kojto 90:cb3d968589d8 53 /** @addtogroup CRCEx CRCEx Extended HAL Module Driver
Kojto 90:cb3d968589d8 54 * @{
Kojto 90:cb3d968589d8 55 */
Kojto 90:cb3d968589d8 56
Kojto 90:cb3d968589d8 57 /* Exported types ------------------------------------------------------------*/
Kojto 90:cb3d968589d8 58 /* Exported constants --------------------------------------------------------*/
Kojto 90:cb3d968589d8 59 /** @defgroup CRCEx_Exported_Constants CRCEx Exported Constants
Kojto 90:cb3d968589d8 60 * @{
Kojto 90:cb3d968589d8 61 */
Kojto 90:cb3d968589d8 62 /** @defgroup CRCEx_Input_Data_Inversion Input Data Inversion Modes
Kojto 90:cb3d968589d8 63 * @{
Kojto 90:cb3d968589d8 64 */
Kojto 90:cb3d968589d8 65 #define CRC_INPUTDATA_INVERSION_NONE ((uint32_t)0x00000000)
Kojto 90:cb3d968589d8 66 #define CRC_INPUTDATA_INVERSION_BYTE ((uint32_t)CRC_CR_REV_IN_0)
Kojto 90:cb3d968589d8 67 #define CRC_INPUTDATA_INVERSION_HALFWORD ((uint32_t)CRC_CR_REV_IN_1)
Kojto 90:cb3d968589d8 68 #define CRC_INPUTDATA_INVERSION_WORD ((uint32_t)CRC_CR_REV_IN)
Kojto 90:cb3d968589d8 69
Kojto 90:cb3d968589d8 70 #define IS_CRC_INPUTDATA_INVERSION_MODE(MODE) (((MODE) == CRC_INPUTDATA_INVERSION_NONE) || \
Kojto 90:cb3d968589d8 71 ((MODE) == CRC_INPUTDATA_INVERSION_BYTE) || \
Kojto 90:cb3d968589d8 72 ((MODE) == CRC_INPUTDATA_INVERSION_HALFWORD) || \
Kojto 90:cb3d968589d8 73 ((MODE) == CRC_INPUTDATA_INVERSION_WORD))
Kojto 90:cb3d968589d8 74 /**
Kojto 90:cb3d968589d8 75 * @}
Kojto 90:cb3d968589d8 76 */
Kojto 90:cb3d968589d8 77
Kojto 90:cb3d968589d8 78 /** @defgroup CRCEx_Output_Data_Inversion Output Data Inversion Modes
Kojto 90:cb3d968589d8 79 * @{
Kojto 90:cb3d968589d8 80 */
Kojto 90:cb3d968589d8 81 #define CRC_OUTPUTDATA_INVERSION_DISABLED ((uint32_t)0x00000000)
Kojto 90:cb3d968589d8 82 #define CRC_OUTPUTDATA_INVERSION_ENABLED ((uint32_t)CRC_CR_REV_OUT)
Kojto 90:cb3d968589d8 83
Kojto 90:cb3d968589d8 84 #define IS_CRC_OUTPUTDATA_INVERSION_MODE(MODE) (((MODE) == CRC_OUTPUTDATA_INVERSION_DISABLED) || \
Kojto 90:cb3d968589d8 85 ((MODE) == CRC_OUTPUTDATA_INVERSION_ENABLED))
Kojto 90:cb3d968589d8 86 /**
Kojto 90:cb3d968589d8 87 * @}
Kojto 90:cb3d968589d8 88 */
Kojto 90:cb3d968589d8 89
Kojto 90:cb3d968589d8 90 /** @defgroup CRCEx_Polynomial_Sizes Polynomial sizes to configure the IP
Kojto 90:cb3d968589d8 91 * @{
Kojto 90:cb3d968589d8 92 */
Kojto 93:e188a91d3eaa 93 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx)
Kojto 90:cb3d968589d8 94 #define CRC_POLYLENGTH_32B ((uint32_t)0x00000000)
Kojto 90:cb3d968589d8 95 #define CRC_POLYLENGTH_16B ((uint32_t)CRC_CR_POLYSIZE_0)
Kojto 90:cb3d968589d8 96 #define CRC_POLYLENGTH_8B ((uint32_t)CRC_CR_POLYSIZE_1)
Kojto 90:cb3d968589d8 97 #define CRC_POLYLENGTH_7B ((uint32_t)CRC_CR_POLYSIZE)
Kojto 90:cb3d968589d8 98 #define IS_CRC_POL_LENGTH(LENGTH) (((LENGTH) == CRC_POLYLENGTH_32B) || \
Kojto 90:cb3d968589d8 99 ((LENGTH) == CRC_POLYLENGTH_16B) || \
Kojto 90:cb3d968589d8 100 ((LENGTH) == CRC_POLYLENGTH_8B) || \
Kojto 90:cb3d968589d8 101 ((LENGTH) == CRC_POLYLENGTH_7B))
Kojto 93:e188a91d3eaa 102 #else
Kojto 93:e188a91d3eaa 103 #define CRC_POLYLENGTH_32B ((uint32_t)0x00000000)
Kojto 93:e188a91d3eaa 104 #define IS_CRC_POL_LENGTH(LENGTH) ((LENGTH) == CRC_POLYLENGTH_32B)
Kojto 93:e188a91d3eaa 105 #endif /* defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) */
Kojto 90:cb3d968589d8 106 /**
Kojto 90:cb3d968589d8 107 * @}
Kojto 90:cb3d968589d8 108 */
Kojto 90:cb3d968589d8 109
Kojto 90:cb3d968589d8 110 /** @defgroup CRCEx_Polynomial_Size_Definitions CRC polynomial possible sizes actual definitions
Kojto 90:cb3d968589d8 111 * @{
Kojto 90:cb3d968589d8 112 */
Kojto 93:e188a91d3eaa 113 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx)
Kojto 90:cb3d968589d8 114 #define HAL_CRC_LENGTH_32B 32
Kojto 90:cb3d968589d8 115 #define HAL_CRC_LENGTH_16B 16
Kojto 90:cb3d968589d8 116 #define HAL_CRC_LENGTH_8B 8
Kojto 90:cb3d968589d8 117 #define HAL_CRC_LENGTH_7B 7
Kojto 93:e188a91d3eaa 118 #else
Kojto 93:e188a91d3eaa 119 #define HAL_CRC_LENGTH_32B 32
Kojto 93:e188a91d3eaa 120 #endif /* defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) */
Kojto 90:cb3d968589d8 121 /**
Kojto 90:cb3d968589d8 122 * @}
Kojto 90:cb3d968589d8 123 */
Kojto 93:e188a91d3eaa 124
Kojto 90:cb3d968589d8 125 /**
Kojto 90:cb3d968589d8 126 * @}
Kojto 90:cb3d968589d8 127 */
Kojto 90:cb3d968589d8 128 /* Exported macro ------------------------------------------------------------*/
Kojto 90:cb3d968589d8 129
Kojto 90:cb3d968589d8 130 /** @defgroup CRCEx_Exported_Macros CRCEx Exported Macros
Kojto 90:cb3d968589d8 131 * @{
Kojto 90:cb3d968589d8 132 */
Kojto 90:cb3d968589d8 133
Kojto 90:cb3d968589d8 134 /**
Kojto 90:cb3d968589d8 135 * @brief Set CRC output reversal
Kojto 90:cb3d968589d8 136 * @param __HANDLE__ : CRC handle
Kojto 90:cb3d968589d8 137 * @retval None.
Kojto 90:cb3d968589d8 138 */
Kojto 90:cb3d968589d8 139 #define __HAL_CRC_OUTPUTREVERSAL_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_REV_OUT)
Kojto 90:cb3d968589d8 140
Kojto 90:cb3d968589d8 141 /**
Kojto 90:cb3d968589d8 142 * @brief Unset CRC output reversal
Kojto 90:cb3d968589d8 143 * @param __HANDLE__ : CRC handle
Kojto 90:cb3d968589d8 144 * @retval None.
Kojto 90:cb3d968589d8 145 */
Kojto 90:cb3d968589d8 146 #define __HAL_CRC_OUTPUTREVERSAL_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(CRC_CR_REV_OUT))
Kojto 90:cb3d968589d8 147
Kojto 93:e188a91d3eaa 148 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) || defined(STM32F070xB) || defined(STM32F030xC)
Kojto 90:cb3d968589d8 149 /**
Kojto 90:cb3d968589d8 150 * @brief Set CRC non-default polynomial
Kojto 90:cb3d968589d8 151 * @param __HANDLE__ : CRC handle
Kojto 90:cb3d968589d8 152 * @param __POLYNOMIAL__: 7, 8, 16 or 32-bit polynomial
Kojto 90:cb3d968589d8 153 * @retval None.
Kojto 90:cb3d968589d8 154 */
Kojto 90:cb3d968589d8 155 #define __HAL_CRC_POLYNOMIAL_CONFIG(__HANDLE__, __POLYNOMIAL__) ((__HANDLE__)->Instance->POL = (__POLYNOMIAL__))
Kojto 93:e188a91d3eaa 156 #endif /* defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) || defined(STM32F070xB) || defined(STM32F030xC) */
Kojto 90:cb3d968589d8 157 /**
Kojto 90:cb3d968589d8 158 * @}
Kojto 90:cb3d968589d8 159 */
Kojto 90:cb3d968589d8 160
Kojto 90:cb3d968589d8 161 /* Exported functions --------------------------------------------------------*/
Kojto 90:cb3d968589d8 162 /** @addtogroup CRCEx_Exported_Functions
Kojto 90:cb3d968589d8 163 * @{
Kojto 90:cb3d968589d8 164 */
Kojto 90:cb3d968589d8 165
Kojto 90:cb3d968589d8 166 /** @addtogroup CRCEx_Exported_Functions_Group1 Extended Initialization/de-initialization functions
Kojto 90:cb3d968589d8 167 * @brief Extended Initialization and Configuration functions.
Kojto 90:cb3d968589d8 168 * @{
Kojto 90:cb3d968589d8 169 */
Kojto 90:cb3d968589d8 170
Kojto 90:cb3d968589d8 171 /* Initialization and de-initialization functions ****************************/
Kojto 90:cb3d968589d8 172 HAL_StatusTypeDef HAL_CRCEx_Init(CRC_HandleTypeDef *hcrc);
Kojto 90:cb3d968589d8 173 HAL_StatusTypeDef HAL_CRCEx_Input_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t InputReverseMode);
Kojto 90:cb3d968589d8 174 HAL_StatusTypeDef HAL_CRCEx_Output_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t OutputReverseMode);
Kojto 90:cb3d968589d8 175
Kojto 93:e188a91d3eaa 176 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) || defined(STM32F070xB) || defined(STM32F030xC)
Kojto 90:cb3d968589d8 177 HAL_StatusTypeDef HAL_CRCEx_Polynomial_Set(CRC_HandleTypeDef *hcrc, uint32_t Pol, uint32_t PolyLength);
Kojto 93:e188a91d3eaa 178 #endif /* defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) || defined(STM32F070xB) || defined(STM32F030xC) */
Kojto 90:cb3d968589d8 179 /**
Kojto 90:cb3d968589d8 180 * @}
Kojto 90:cb3d968589d8 181 */
Kojto 90:cb3d968589d8 182 /* Peripheral Control functions ***********************************************/
Kojto 90:cb3d968589d8 183 /* Peripheral State and Error functions ***************************************/
Kojto 90:cb3d968589d8 184 /**
Kojto 90:cb3d968589d8 185 * @}
Kojto 90:cb3d968589d8 186 */
Kojto 90:cb3d968589d8 187
Kojto 90:cb3d968589d8 188 /**
Kojto 90:cb3d968589d8 189 * @}
Kojto 90:cb3d968589d8 190 */
Kojto 90:cb3d968589d8 191
Kojto 90:cb3d968589d8 192 /**
Kojto 90:cb3d968589d8 193 * @}
Kojto 90:cb3d968589d8 194 */
Kojto 90:cb3d968589d8 195
Kojto 90:cb3d968589d8 196 #ifdef __cplusplus
Kojto 90:cb3d968589d8 197 }
Kojto 90:cb3d968589d8 198 #endif
Kojto 90:cb3d968589d8 199
Kojto 90:cb3d968589d8 200 #endif /* __STM32F0xx_HAL_CRC_EX_H */
Kojto 90:cb3d968589d8 201
Kojto 90:cb3d968589d8 202 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/