mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Mon Nov 03 10:45:07 2014 +0000
Revision:
382:ee426a420dbb
Parent:
targets/cmsis/TARGET_STM/TARGET_DISCO_L053C8/stm32l0xx_hal_crc.h@376:cb4d9db17537
Child:
489:119543c9f674
Synchronized with git revision d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83

Full URL: https://github.com/mbedmicro/mbed/commit/d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83/

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_crc.h
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 376:cb4d9db17537 5 * @version V1.1.0
mbed_official 376:cb4d9db17537 6 * @date 18-June-2014
mbed_official 376:cb4d9db17537 7 * @brief Header file of CRC HAL module.
mbed_official 376:cb4d9db17537 8 ******************************************************************************
mbed_official 376:cb4d9db17537 9 * @attention
mbed_official 376:cb4d9db17537 10 *
mbed_official 376:cb4d9db17537 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 14 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 16 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 19 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 21 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 22 * without specific prior written permission.
mbed_official 376:cb4d9db17537 23 *
mbed_official 376:cb4d9db17537 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 34 *
mbed_official 376:cb4d9db17537 35 ******************************************************************************
mbed_official 376:cb4d9db17537 36 */
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 376:cb4d9db17537 39 #ifndef __STM32L0xx_HAL_CRC_H
mbed_official 376:cb4d9db17537 40 #define __STM32L0xx_HAL_CRC_H
mbed_official 376:cb4d9db17537 41
mbed_official 376:cb4d9db17537 42 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 43 extern "C" {
mbed_official 376:cb4d9db17537 44 #endif
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal_def.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 376:cb4d9db17537 53 /** @addtogroup CRC
mbed_official 376:cb4d9db17537 54 * @{
mbed_official 376:cb4d9db17537 55 */
mbed_official 376:cb4d9db17537 56
mbed_official 376:cb4d9db17537 57 /* Exported types ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 58
mbed_official 376:cb4d9db17537 59 /**
mbed_official 376:cb4d9db17537 60 * @brief CRC HAL State Structure definition
mbed_official 376:cb4d9db17537 61 */
mbed_official 376:cb4d9db17537 62 typedef enum
mbed_official 376:cb4d9db17537 63 {
mbed_official 376:cb4d9db17537 64 HAL_CRC_STATE_RESET = 0x00, /*!< CRC Reset State */
mbed_official 376:cb4d9db17537 65 HAL_CRC_STATE_READY = 0x01, /*!< CRC Initialized and ready for use */
mbed_official 376:cb4d9db17537 66 HAL_CRC_STATE_BUSY = 0x02, /*!< CRC process is ongoing */
mbed_official 376:cb4d9db17537 67 HAL_CRC_STATE_TIMEOUT = 0x03, /*!< CRC Timeout State */
mbed_official 376:cb4d9db17537 68 HAL_CRC_STATE_ERROR = 0x04 /*!< CRC Error State */
mbed_official 376:cb4d9db17537 69 }HAL_CRC_StateTypeDef;
mbed_official 376:cb4d9db17537 70
mbed_official 376:cb4d9db17537 71 /**
mbed_official 376:cb4d9db17537 72 * @brief CRC Init Structure definition
mbed_official 376:cb4d9db17537 73 */
mbed_official 376:cb4d9db17537 74 typedef struct
mbed_official 376:cb4d9db17537 75 {
mbed_official 376:cb4d9db17537 76 uint8_t DefaultPolynomialUse; /*!< This parameter is a value of @ref CRC_Default_Polynomial and indicates if default polynomial is used.
mbed_official 376:cb4d9db17537 77 If set to DEFAULT_POLYNOMIAL_ENABLE, resort to default
mbed_official 376:cb4d9db17537 78 X^32 + X^26 + X^23 + X^22 + X^16 + X^12 + X^11 + X^10 +X^8 + X^7 + X^5 + X^4 + X^2+ X +1.
mbed_official 376:cb4d9db17537 79 In that case, there is no need to set GeneratingPolynomial field.
mbed_official 376:cb4d9db17537 80 If otherwise set to DEFAULT_POLYNOMIAL_DISABLE, GeneratingPolynomial and CRCLength fields must be set */
mbed_official 376:cb4d9db17537 81
mbed_official 376:cb4d9db17537 82 uint8_t DefaultInitValueUse; /*!< This parameter is a value of @ref CRC_Default_InitValue_Use and indicates if default init value is used.
mbed_official 376:cb4d9db17537 83 If set to DEFAULT_INIT_VALUE_ENABLE, resort to default
mbed_official 376:cb4d9db17537 84 0xFFFFFFFF value. In that case, there is no need to set InitValue field.
mbed_official 376:cb4d9db17537 85 If otherwise set to DEFAULT_INIT_VALUE_DISABLE, InitValue field must be set */
mbed_official 376:cb4d9db17537 86
mbed_official 376:cb4d9db17537 87 uint32_t GeneratingPolynomial; /*!< Set CRC generating polynomial. 7, 8, 16 or 32-bit long value for a polynomial degree
mbed_official 376:cb4d9db17537 88 respectively equal to 7, 8, 16 or 32. This field is written in normal representation,
mbed_official 376:cb4d9db17537 89 e.g., for a polynomial of degree 7, X^7 + X^6 + X^5 + X^2 + 1 is written 0x65.
mbed_official 376:cb4d9db17537 90 No need to specify it if DefaultPolynomialUse is set to DEFAULT_POLYNOMIAL_ENABLE */
mbed_official 376:cb4d9db17537 91
mbed_official 376:cb4d9db17537 92 uint32_t CRCLength; /*!< This parameter is a value of @ref CRC_Polynomial_Size_Definitions and indicates CRC length.
mbed_official 376:cb4d9db17537 93 Value can be either one of
mbed_official 376:cb4d9db17537 94 CRC_POLYLENGTH_32B (32-bit CRC)
mbed_official 376:cb4d9db17537 95 CRC_POLYLENGTH_16B (16-bit CRC)
mbed_official 376:cb4d9db17537 96 CRC_POLYLENGTH_8B (8-bit CRC)
mbed_official 376:cb4d9db17537 97 CRC_POLYLENGTH_7B (7-bit CRC) */
mbed_official 376:cb4d9db17537 98
mbed_official 376:cb4d9db17537 99 uint32_t InitValue; /*!< Init value to initiate CRC computation. No need to specify it if DefaultInitValueUse
mbed_official 376:cb4d9db17537 100 is set to DEFAULT_INIT_VALUE_ENABLE */
mbed_official 376:cb4d9db17537 101
mbed_official 376:cb4d9db17537 102 uint32_t InputDataInversionMode; /*!< This parameter is a value of @ref CRC_Input_Data_Inversion and specifies input data inversion mode.
mbed_official 376:cb4d9db17537 103 Can be either one of the following values
mbed_official 376:cb4d9db17537 104 CRC_INPUTDATA_INVERSION_NONE no input data inversion
mbed_official 376:cb4d9db17537 105 CRC_INPUTDATA_INVERSION_BYTE byte-wise inversion, 0x1A2B3C4D becomes 0x58D43CB2
mbed_official 376:cb4d9db17537 106 CRC_INPUTDATA_INVERSION_HALFWORD halfword-wise inversion, 0x1A2B3C4D becomes 0xD458B23C
mbed_official 376:cb4d9db17537 107 CRC_INPUTDATA_INVERSION_WORD word-wise inversion, 0x1A2B3C4D becomes 0xB23CD458 */
mbed_official 376:cb4d9db17537 108
mbed_official 376:cb4d9db17537 109 uint32_t OutputDataInversionMode; /*!< This parameter is a value of @ref CRC_Output_Data_Inversion and specifies output data (i.e. CRC) inversion mode.
mbed_official 376:cb4d9db17537 110 Can be either
mbed_official 376:cb4d9db17537 111 CRC_OUTPUTDATA_INVERSION_DISABLED no CRC inversion, or
mbed_official 376:cb4d9db17537 112 CRC_OUTPUTDATA_INVERSION_ENABLED CRC 0x11223344 is converted into 0x22CC4488 */
mbed_official 376:cb4d9db17537 113 }CRC_InitTypeDef;
mbed_official 376:cb4d9db17537 114
mbed_official 376:cb4d9db17537 115
mbed_official 376:cb4d9db17537 116 /**
mbed_official 376:cb4d9db17537 117 * @brief CRC Handle Structure definition
mbed_official 376:cb4d9db17537 118 */
mbed_official 376:cb4d9db17537 119 typedef struct
mbed_official 376:cb4d9db17537 120 {
mbed_official 376:cb4d9db17537 121 CRC_TypeDef *Instance; /*!< Register base address */
mbed_official 376:cb4d9db17537 122
mbed_official 376:cb4d9db17537 123 CRC_InitTypeDef Init; /*!< CRC configuration parameters */
mbed_official 376:cb4d9db17537 124
mbed_official 376:cb4d9db17537 125 HAL_LockTypeDef Lock; /*!< CRC Locking object */
mbed_official 376:cb4d9db17537 126
mbed_official 376:cb4d9db17537 127 __IO HAL_CRC_StateTypeDef State; /*!< CRC communication state */
mbed_official 376:cb4d9db17537 128
mbed_official 376:cb4d9db17537 129 uint32_t InputDataFormat; /*!< This parameter is a value of @ref CRC_Input_Buffer_Format and specifies input data format.
mbed_official 376:cb4d9db17537 130 Can be either
mbed_official 376:cb4d9db17537 131 CRC_INPUTDATA_FORMAT_BYTES input data is a stream of bytes (8-bit data)
mbed_official 376:cb4d9db17537 132 CRC_INPUTDATA_FORMAT_HALFWORDS input data is a stream of half-words (16-bit data)
mbed_official 376:cb4d9db17537 133 CRC_INPUTDATA_FORMAT_WORDS input data is a stream of words (32-bits data)
mbed_official 376:cb4d9db17537 134 Note that constant CRC_INPUT_FORMAT_UNDEFINED is defined but an initialization error
mbed_official 376:cb4d9db17537 135 must occur if InputBufferFormat is not one of the three values listed above */
mbed_official 376:cb4d9db17537 136 }CRC_HandleTypeDef;
mbed_official 376:cb4d9db17537 137
mbed_official 376:cb4d9db17537 138 /* Exported constants --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 139 /** @defgroup CRC_Exported_Constants
mbed_official 376:cb4d9db17537 140 * @{
mbed_official 376:cb4d9db17537 141 */
mbed_official 376:cb4d9db17537 142
mbed_official 376:cb4d9db17537 143 /** @defgroup CRC_Default_Polynomial_Value
mbed_official 376:cb4d9db17537 144 * @{
mbed_official 376:cb4d9db17537 145 */
mbed_official 376:cb4d9db17537 146 #define DEFAULT_CRC32_POLY 0x04C11DB7
mbed_official 376:cb4d9db17537 147
mbed_official 376:cb4d9db17537 148 /**
mbed_official 376:cb4d9db17537 149 * @}
mbed_official 376:cb4d9db17537 150 */
mbed_official 376:cb4d9db17537 151
mbed_official 376:cb4d9db17537 152 /** @defgroup CRC_Default_Init_Value
mbed_official 376:cb4d9db17537 153 * @{
mbed_official 376:cb4d9db17537 154 */
mbed_official 376:cb4d9db17537 155 #define DEFAULT_CRC_INITVALUE 0xFFFFFFFF
mbed_official 376:cb4d9db17537 156
mbed_official 376:cb4d9db17537 157 /**
mbed_official 376:cb4d9db17537 158 * @}
mbed_official 376:cb4d9db17537 159 */
mbed_official 376:cb4d9db17537 160
mbed_official 376:cb4d9db17537 161 /** @defgroup CRC_Default_Polynomial
mbed_official 376:cb4d9db17537 162 * @{
mbed_official 376:cb4d9db17537 163 */
mbed_official 376:cb4d9db17537 164 #define DEFAULT_POLYNOMIAL_ENABLE ((uint8_t)0x00)
mbed_official 376:cb4d9db17537 165 #define DEFAULT_POLYNOMIAL_DISABLE ((uint8_t)0x01)
mbed_official 376:cb4d9db17537 166 #define IS_DEFAULT_POLYNOMIAL(DEFAULT) (((DEFAULT) == DEFAULT_POLYNOMIAL_ENABLE) || \
mbed_official 376:cb4d9db17537 167 ((DEFAULT) == DEFAULT_POLYNOMIAL_DISABLE))
mbed_official 376:cb4d9db17537 168 /**
mbed_official 376:cb4d9db17537 169 * @}
mbed_official 376:cb4d9db17537 170 */
mbed_official 376:cb4d9db17537 171
mbed_official 376:cb4d9db17537 172 /** @defgroup CRC_Default_InitValue_Use
mbed_official 376:cb4d9db17537 173 * @{
mbed_official 376:cb4d9db17537 174 */
mbed_official 376:cb4d9db17537 175 #define DEFAULT_INIT_VALUE_ENABLE ((uint8_t)0x00)
mbed_official 376:cb4d9db17537 176 #define DEFAULT_INIT_VALUE_DISABLE ((uint8_t)0x01)
mbed_official 376:cb4d9db17537 177 #define IS_DEFAULT_INIT_VALUE(VALUE) (((VALUE) == DEFAULT_INIT_VALUE_ENABLE) || \
mbed_official 376:cb4d9db17537 178 ((VALUE) == DEFAULT_INIT_VALUE_DISABLE))
mbed_official 376:cb4d9db17537 179
mbed_official 376:cb4d9db17537 180 /**
mbed_official 376:cb4d9db17537 181 * @}
mbed_official 376:cb4d9db17537 182 */
mbed_official 376:cb4d9db17537 183
mbed_official 376:cb4d9db17537 184 /** @defgroup CRC_Polynomial_Sizes
mbed_official 376:cb4d9db17537 185 * @{
mbed_official 376:cb4d9db17537 186 */
mbed_official 376:cb4d9db17537 187 #define CRC_POLYLENGTH_32B ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 188 #define CRC_POLYLENGTH_16B ((uint32_t)CRC_CR_POLYSIZE_0)
mbed_official 376:cb4d9db17537 189 #define CRC_POLYLENGTH_8B ((uint32_t)CRC_CR_POLYSIZE_1)
mbed_official 376:cb4d9db17537 190 #define CRC_POLYLENGTH_7B ((uint32_t)CRC_CR_POLYSIZE)
mbed_official 376:cb4d9db17537 191 #define IS_CRC_POL_LENGTH(LENGTH) (((LENGTH) == CRC_POLYLENGTH_32B) || \
mbed_official 376:cb4d9db17537 192 ((LENGTH) == CRC_POLYLENGTH_16B) || \
mbed_official 376:cb4d9db17537 193 ((LENGTH) == CRC_POLYLENGTH_8B) || \
mbed_official 376:cb4d9db17537 194 ((LENGTH) == CRC_POLYLENGTH_7B))
mbed_official 376:cb4d9db17537 195 /**
mbed_official 376:cb4d9db17537 196 * @}
mbed_official 376:cb4d9db17537 197 */
mbed_official 376:cb4d9db17537 198
mbed_official 376:cb4d9db17537 199 /** @defgroup CRC_Polynomial_Size_Definitions
mbed_official 376:cb4d9db17537 200 * @{
mbed_official 376:cb4d9db17537 201 */
mbed_official 376:cb4d9db17537 202 #define HAL_CRC_LENGTH_32B 32
mbed_official 376:cb4d9db17537 203 #define HAL_CRC_LENGTH_16B 16
mbed_official 376:cb4d9db17537 204 #define HAL_CRC_LENGTH_8B 8
mbed_official 376:cb4d9db17537 205 #define HAL_CRC_LENGTH_7B 7
mbed_official 376:cb4d9db17537 206
mbed_official 376:cb4d9db17537 207 /**
mbed_official 376:cb4d9db17537 208 * @}
mbed_official 376:cb4d9db17537 209 */
mbed_official 376:cb4d9db17537 210
mbed_official 376:cb4d9db17537 211 /** @defgroup CRC_Input_Data_Inversion
mbed_official 376:cb4d9db17537 212 * @{
mbed_official 376:cb4d9db17537 213 */
mbed_official 376:cb4d9db17537 214 #define CRC_INPUTDATA_INVERSION_NONE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 215 #define CRC_INPUTDATA_INVERSION_BYTE ((uint32_t)CRC_CR_REV_IN_0)
mbed_official 376:cb4d9db17537 216 #define CRC_INPUTDATA_INVERSION_HALFWORD ((uint32_t)CRC_CR_REV_IN_1)
mbed_official 376:cb4d9db17537 217 #define CRC_INPUTDATA_INVERSION_WORD ((uint32_t)CRC_CR_REV_IN)
mbed_official 376:cb4d9db17537 218 #define IS_CRC_INPUTDATA_INVERSION_MODE(MODE) (((MODE) == CRC_INPUTDATA_INVERSION_NONE) || \
mbed_official 376:cb4d9db17537 219 ((MODE) == CRC_INPUTDATA_INVERSION_BYTE) || \
mbed_official 376:cb4d9db17537 220 ((MODE) == CRC_INPUTDATA_INVERSION_HALFWORD) || \
mbed_official 376:cb4d9db17537 221 ((MODE) == CRC_INPUTDATA_INVERSION_WORD))
mbed_official 376:cb4d9db17537 222 /**
mbed_official 376:cb4d9db17537 223 * @}
mbed_official 376:cb4d9db17537 224 */
mbed_official 376:cb4d9db17537 225
mbed_official 376:cb4d9db17537 226 /** @defgroup CRC_Output_Data_Inversion
mbed_official 376:cb4d9db17537 227 * @{
mbed_official 376:cb4d9db17537 228 */
mbed_official 376:cb4d9db17537 229 #define CRC_OUTPUTDATA_INVERSION_DISABLED ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 230 #define CRC_OUTPUTDATA_INVERSION_ENABLED ((uint32_t)CRC_CR_REV_OUT)
mbed_official 376:cb4d9db17537 231 #define IS_CRC_OUTPUTDATA_INVERSION_MODE(MODE) (((MODE) == CRC_OUTPUTDATA_INVERSION_DISABLED) || \
mbed_official 376:cb4d9db17537 232 ((MODE) == CRC_OUTPUTDATA_INVERSION_ENABLED))
mbed_official 376:cb4d9db17537 233 /**
mbed_official 376:cb4d9db17537 234 * @}
mbed_official 376:cb4d9db17537 235 */
mbed_official 376:cb4d9db17537 236
mbed_official 376:cb4d9db17537 237 /** @defgroup CRC_Input_Buffer_Format
mbed_official 376:cb4d9db17537 238 * @{
mbed_official 376:cb4d9db17537 239 */
mbed_official 376:cb4d9db17537 240 /* WARNING: CRC_INPUT_FORMAT_UNDEFINED is created for reference purposes but
mbed_official 376:cb4d9db17537 241 * an error is triggered in HAL_CRC_Init() if InputDataFormat field is set
mbed_official 376:cb4d9db17537 242 * to CRC_INPUT_FORMAT_UNDEFINED: the format MUST be defined by the user for
mbed_official 376:cb4d9db17537 243 * the CRC APIs to provide a correct result */
mbed_official 376:cb4d9db17537 244 #define CRC_INPUTDATA_FORMAT_UNDEFINED ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 245 #define CRC_INPUTDATA_FORMAT_BYTES ((uint32_t)0x00000001)
mbed_official 376:cb4d9db17537 246 #define CRC_INPUTDATA_FORMAT_HALFWORDS ((uint32_t)0x00000002)
mbed_official 376:cb4d9db17537 247 #define CRC_INPUTDATA_FORMAT_WORDS ((uint32_t)0x00000003)
mbed_official 376:cb4d9db17537 248 #define IS_CRC_INPUTDATA_FORMAT(FORMAT) (((FORMAT) == CRC_INPUTDATA_FORMAT_BYTES) || \
mbed_official 376:cb4d9db17537 249 ((FORMAT) == CRC_INPUTDATA_FORMAT_HALFWORDS) || \
mbed_official 376:cb4d9db17537 250 ((FORMAT) == CRC_INPUTDATA_FORMAT_WORDS))
mbed_official 376:cb4d9db17537 251 /**
mbed_official 376:cb4d9db17537 252 * @}
mbed_official 376:cb4d9db17537 253 */
mbed_official 376:cb4d9db17537 254
mbed_official 376:cb4d9db17537 255 /**
mbed_official 376:cb4d9db17537 256 * @}
mbed_official 376:cb4d9db17537 257 */
mbed_official 376:cb4d9db17537 258 /* Exported macro ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 259
mbed_official 376:cb4d9db17537 260 /** @defgroup CRC_Exported_Macro
mbed_official 376:cb4d9db17537 261 * @{
mbed_official 376:cb4d9db17537 262 */
mbed_official 376:cb4d9db17537 263
mbed_official 376:cb4d9db17537 264 /** @brief Reset CRC handle state
mbed_official 376:cb4d9db17537 265 * @param __HANDLE__: CRC handle
mbed_official 376:cb4d9db17537 266 * @retval None
mbed_official 376:cb4d9db17537 267 */
mbed_official 376:cb4d9db17537 268 #define __HAL_CRC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRC_STATE_RESET)
mbed_official 376:cb4d9db17537 269
mbed_official 376:cb4d9db17537 270 /**
mbed_official 376:cb4d9db17537 271 * @brief Check that instance is correctly set to CRC
mbed_official 376:cb4d9db17537 272 * @param __PERIPH__: CRC handle instance
mbed_official 376:cb4d9db17537 273 * @retval None.
mbed_official 376:cb4d9db17537 274 */
mbed_official 376:cb4d9db17537 275 #define IS_CRC_INSTANCE(__PERIPH__) ((__PERIPH__) == CRC)
mbed_official 376:cb4d9db17537 276
mbed_official 376:cb4d9db17537 277 /**
mbed_official 376:cb4d9db17537 278 * @brief Reset CRC Data Register.
mbed_official 376:cb4d9db17537 279 * @param __HANDLE__: CRC handle
mbed_official 376:cb4d9db17537 280 * @retval None.
mbed_official 376:cb4d9db17537 281 */
mbed_official 376:cb4d9db17537 282 #define __HAL_CRC_DR_RESET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_RESET)
mbed_official 376:cb4d9db17537 283
mbed_official 376:cb4d9db17537 284 /**
mbed_official 376:cb4d9db17537 285 * @brief Set CRC INIT non-default value
mbed_official 376:cb4d9db17537 286 * @param __HANDLE__ : CRC handle
mbed_official 376:cb4d9db17537 287 * @param __INIT__ : 32-bit initial value
mbed_official 376:cb4d9db17537 288 * @retval None.
mbed_official 376:cb4d9db17537 289 */
mbed_official 376:cb4d9db17537 290 #define __HAL_CRC_INITIALCRCVALUE_CONFIG(__HANDLE__, __INIT__) ((__HANDLE__)->Instance->INIT = (__INIT__))
mbed_official 376:cb4d9db17537 291
mbed_official 376:cb4d9db17537 292
mbed_official 376:cb4d9db17537 293 /**
mbed_official 376:cb4d9db17537 294 * @brief Set CRC output reversal
mbed_official 376:cb4d9db17537 295 * @param __HANDLE__ : CRC handle
mbed_official 376:cb4d9db17537 296 * @retval None.
mbed_official 376:cb4d9db17537 297 */
mbed_official 376:cb4d9db17537 298 #define __HAL_CRC_OUTPUTREVERSAL_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_REV_OUT)
mbed_official 376:cb4d9db17537 299
mbed_official 376:cb4d9db17537 300
mbed_official 376:cb4d9db17537 301 /**
mbed_official 376:cb4d9db17537 302 * @brief Unset CRC output reversal
mbed_official 376:cb4d9db17537 303 * @param __HANDLE__ : CRC handle
mbed_official 376:cb4d9db17537 304 * @retval None.
mbed_official 376:cb4d9db17537 305 */
mbed_official 376:cb4d9db17537 306 #define __HAL_CRC_OUTPUTREVERSAL_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(CRC_CR_REV_OUT))
mbed_official 376:cb4d9db17537 307
mbed_official 376:cb4d9db17537 308
mbed_official 376:cb4d9db17537 309 /**
mbed_official 376:cb4d9db17537 310 * @}
mbed_official 376:cb4d9db17537 311 */
mbed_official 376:cb4d9db17537 312
mbed_official 376:cb4d9db17537 313
mbed_official 376:cb4d9db17537 314 /* Include CRC HAL Extension module */
mbed_official 376:cb4d9db17537 315 #include "stm32l0xx_hal_crc_ex.h"
mbed_official 376:cb4d9db17537 316
mbed_official 376:cb4d9db17537 317 /* Exported functions --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 318
mbed_official 376:cb4d9db17537 319 /* Initialization and de-initialization functions ****************************/
mbed_official 376:cb4d9db17537 320 HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc);
mbed_official 376:cb4d9db17537 321 HAL_StatusTypeDef HAL_CRC_DeInit (CRC_HandleTypeDef *hcrc);
mbed_official 376:cb4d9db17537 322 void HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc);
mbed_official 376:cb4d9db17537 323 void HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc);
mbed_official 376:cb4d9db17537 324
mbed_official 376:cb4d9db17537 325 /* Peripheral Control functions ***********************************************/
mbed_official 376:cb4d9db17537 326 uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
mbed_official 376:cb4d9db17537 327 uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
mbed_official 376:cb4d9db17537 328
mbed_official 376:cb4d9db17537 329 /* Peripheral State and Error functions ***************************************/
mbed_official 376:cb4d9db17537 330 HAL_CRC_StateTypeDef HAL_CRC_GetState(CRC_HandleTypeDef *hcrc);
mbed_official 376:cb4d9db17537 331
mbed_official 376:cb4d9db17537 332 /**
mbed_official 376:cb4d9db17537 333 * @}
mbed_official 376:cb4d9db17537 334 */
mbed_official 376:cb4d9db17537 335
mbed_official 376:cb4d9db17537 336 /**
mbed_official 376:cb4d9db17537 337 * @}
mbed_official 376:cb4d9db17537 338 */
mbed_official 376:cb4d9db17537 339
mbed_official 376:cb4d9db17537 340 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 341 }
mbed_official 376:cb4d9db17537 342 #endif
mbed_official 376:cb4d9db17537 343
mbed_official 376:cb4d9db17537 344 #endif /* __STM32L0xx_HAL_CRC_H */
mbed_official 376:cb4d9db17537 345
mbed_official 376:cb4d9db17537 346 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/