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:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Parent:
573:ad23fe03a082
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 573:ad23fe03a082 1 /**
mbed_official 573:ad23fe03a082 2 ******************************************************************************
mbed_official 573:ad23fe03a082 3 * @file stm32f7xx_hal_crc.h
mbed_official 573:ad23fe03a082 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.1
mbed_official 610:813dcc80987e 6 * @date 25-June-2015
mbed_official 573:ad23fe03a082 7 * @brief Header file of CRC HAL module.
mbed_official 573:ad23fe03a082 8 ******************************************************************************
mbed_official 573:ad23fe03a082 9 * @attention
mbed_official 573:ad23fe03a082 10 *
mbed_official 573:ad23fe03a082 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 573:ad23fe03a082 12 *
mbed_official 573:ad23fe03a082 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 573:ad23fe03a082 14 * are permitted provided that the following conditions are met:
mbed_official 573:ad23fe03a082 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 573:ad23fe03a082 16 * this list of conditions and the following disclaimer.
mbed_official 573:ad23fe03a082 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 573:ad23fe03a082 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 573:ad23fe03a082 19 * and/or other materials provided with the distribution.
mbed_official 573:ad23fe03a082 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 573:ad23fe03a082 21 * may be used to endorse or promote products derived from this software
mbed_official 573:ad23fe03a082 22 * without specific prior written permission.
mbed_official 573:ad23fe03a082 23 *
mbed_official 573:ad23fe03a082 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 573:ad23fe03a082 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 573:ad23fe03a082 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 573:ad23fe03a082 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 573:ad23fe03a082 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 573:ad23fe03a082 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 573:ad23fe03a082 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 573:ad23fe03a082 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 573:ad23fe03a082 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 573:ad23fe03a082 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 573:ad23fe03a082 34 *
mbed_official 573:ad23fe03a082 35 ******************************************************************************
mbed_official 573:ad23fe03a082 36 */
mbed_official 573:ad23fe03a082 37
mbed_official 573:ad23fe03a082 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 573:ad23fe03a082 39 #ifndef __STM32F7xx_HAL_CRC_H
mbed_official 573:ad23fe03a082 40 #define __STM32F7xx_HAL_CRC_H
mbed_official 573:ad23fe03a082 41
mbed_official 573:ad23fe03a082 42 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 43 extern "C" {
mbed_official 573:ad23fe03a082 44 #endif
mbed_official 573:ad23fe03a082 45
mbed_official 573:ad23fe03a082 46 /* Includes ------------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 47 #include "stm32f7xx_hal_def.h"
mbed_official 573:ad23fe03a082 48
mbed_official 573:ad23fe03a082 49 /** @addtogroup STM32F7xx_HAL_Driver
mbed_official 573:ad23fe03a082 50 * @{
mbed_official 573:ad23fe03a082 51 */
mbed_official 573:ad23fe03a082 52
mbed_official 573:ad23fe03a082 53 /** @defgroup CRC CRC
mbed_official 573:ad23fe03a082 54 * @brief CRC HAL module driver
mbed_official 573:ad23fe03a082 55 * @{
mbed_official 573:ad23fe03a082 56 */
mbed_official 573:ad23fe03a082 57
mbed_official 573:ad23fe03a082 58 /* Exported types ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 59 /** @defgroup CRC_Exported_Types CRC Exported Types
mbed_official 573:ad23fe03a082 60 * @{
mbed_official 573:ad23fe03a082 61 */
mbed_official 573:ad23fe03a082 62
mbed_official 573:ad23fe03a082 63 /** @defgroup CRC_Exported_Types_Group1 CRC State Structure definition
mbed_official 573:ad23fe03a082 64 * @{
mbed_official 573:ad23fe03a082 65 */
mbed_official 573:ad23fe03a082 66 typedef enum
mbed_official 573:ad23fe03a082 67 {
mbed_official 573:ad23fe03a082 68 HAL_CRC_STATE_RESET = 0x00, /*!< CRC not yet initialized or disabled */
mbed_official 573:ad23fe03a082 69 HAL_CRC_STATE_READY = 0x01, /*!< CRC initialized and ready for use */
mbed_official 573:ad23fe03a082 70 HAL_CRC_STATE_BUSY = 0x02, /*!< CRC internal process is ongoing */
mbed_official 573:ad23fe03a082 71 HAL_CRC_STATE_TIMEOUT = 0x03, /*!< CRC timeout state */
mbed_official 573:ad23fe03a082 72 HAL_CRC_STATE_ERROR = 0x04 /*!< CRC error state */
mbed_official 573:ad23fe03a082 73 }HAL_CRC_StateTypeDef;
mbed_official 573:ad23fe03a082 74 /**
mbed_official 573:ad23fe03a082 75 * @}
mbed_official 573:ad23fe03a082 76 */
mbed_official 573:ad23fe03a082 77
mbed_official 573:ad23fe03a082 78 /** @defgroup CRC_Exported_Types_Group2 CRC Init Structure definition
mbed_official 573:ad23fe03a082 79 * @{
mbed_official 573:ad23fe03a082 80 */
mbed_official 573:ad23fe03a082 81 typedef struct
mbed_official 573:ad23fe03a082 82 {
mbed_official 573:ad23fe03a082 83 uint8_t DefaultPolynomialUse; /*!< This parameter is a value of @ref CRC_Default_Polynomial and indicates if default polynomial is used.
mbed_official 573:ad23fe03a082 84 If set to DEFAULT_POLYNOMIAL_ENABLE, resort to default
mbed_official 573:ad23fe03a082 85 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 573:ad23fe03a082 86 In that case, there is no need to set GeneratingPolynomial field.
mbed_official 573:ad23fe03a082 87 If otherwise set to DEFAULT_POLYNOMIAL_DISABLE, GeneratingPolynomial and CRCLength fields must be set */
mbed_official 573:ad23fe03a082 88
mbed_official 573:ad23fe03a082 89 uint8_t DefaultInitValueUse; /*!< This parameter is a value of @ref CRC_Default_InitValue_Use and indicates if default init value is used.
mbed_official 573:ad23fe03a082 90 If set to DEFAULT_INIT_VALUE_ENABLE, resort to default
mbed_official 573:ad23fe03a082 91 0xFFFFFFFF value. In that case, there is no need to set InitValue field.
mbed_official 573:ad23fe03a082 92 If otherwise set to DEFAULT_INIT_VALUE_DISABLE, InitValue field must be set */
mbed_official 573:ad23fe03a082 93
mbed_official 573:ad23fe03a082 94 uint32_t GeneratingPolynomial; /*!< Set CRC generating polynomial. 7, 8, 16 or 32-bit long value for a polynomial degree
mbed_official 573:ad23fe03a082 95 respectively equal to 7, 8, 16 or 32. This field is written in normal representation,
mbed_official 573:ad23fe03a082 96 e.g., for a polynomial of degree 7, X^7 + X^6 + X^5 + X^2 + 1 is written 0x65.
mbed_official 573:ad23fe03a082 97 No need to specify it if DefaultPolynomialUse is set to DEFAULT_POLYNOMIAL_ENABLE */
mbed_official 573:ad23fe03a082 98
mbed_official 573:ad23fe03a082 99 uint32_t CRCLength; /*!< This parameter is a value of @ref CRC_Polynomial_Sizes and indicates CRC length.
mbed_official 573:ad23fe03a082 100 Value can be either one of
mbed_official 573:ad23fe03a082 101 CRC_POLYLENGTH_32B (32-bit CRC)
mbed_official 573:ad23fe03a082 102 CRC_POLYLENGTH_16B (16-bit CRC)
mbed_official 573:ad23fe03a082 103 CRC_POLYLENGTH_8B (8-bit CRC)
mbed_official 573:ad23fe03a082 104 CRC_POLYLENGTH_7B (7-bit CRC) */
mbed_official 573:ad23fe03a082 105
mbed_official 573:ad23fe03a082 106 uint32_t InitValue; /*!< Init value to initiate CRC computation. No need to specify it if DefaultInitValueUse
mbed_official 573:ad23fe03a082 107 is set to DEFAULT_INIT_VALUE_ENABLE */
mbed_official 573:ad23fe03a082 108
mbed_official 573:ad23fe03a082 109 uint32_t InputDataInversionMode; /*!< This parameter is a value of @ref CRCEx_Input_Data_Inversion and specifies input data inversion mode.
mbed_official 573:ad23fe03a082 110 Can be either one of the following values
mbed_official 573:ad23fe03a082 111 CRC_INPUTDATA_INVERSION_NONE no input data inversion
mbed_official 573:ad23fe03a082 112 CRC_INPUTDATA_INVERSION_BYTE byte-wise inversion, 0x1A2B3C4D becomes 0x58D43CB2
mbed_official 573:ad23fe03a082 113 CRC_INPUTDATA_INVERSION_HALFWORD halfword-wise inversion, 0x1A2B3C4D becomes 0xD458B23C
mbed_official 573:ad23fe03a082 114 CRC_INPUTDATA_INVERSION_WORD word-wise inversion, 0x1A2B3C4D becomes 0xB23CD458 */
mbed_official 573:ad23fe03a082 115
mbed_official 573:ad23fe03a082 116 uint32_t OutputDataInversionMode; /*!< This parameter is a value of @ref CRCEx_Output_Data_Inversion and specifies output data (i.e. CRC) inversion mode.
mbed_official 573:ad23fe03a082 117 Can be either
mbed_official 573:ad23fe03a082 118 CRC_OUTPUTDATA_INVERSION_DISABLE no CRC inversion, or
mbed_official 573:ad23fe03a082 119 CRC_OUTPUTDATA_INVERSION_ENABLE CRC 0x11223344 is converted into 0x22CC4488 */
mbed_official 573:ad23fe03a082 120 }CRC_InitTypeDef;
mbed_official 573:ad23fe03a082 121 /**
mbed_official 573:ad23fe03a082 122 * @}
mbed_official 573:ad23fe03a082 123 */
mbed_official 573:ad23fe03a082 124
mbed_official 573:ad23fe03a082 125 /** @defgroup CRC_Exported_Types_Group3 CRC Handle Structure definition
mbed_official 573:ad23fe03a082 126 * @{
mbed_official 573:ad23fe03a082 127 */
mbed_official 573:ad23fe03a082 128 typedef struct
mbed_official 573:ad23fe03a082 129 {
mbed_official 573:ad23fe03a082 130 CRC_TypeDef *Instance; /*!< Register base address */
mbed_official 573:ad23fe03a082 131
mbed_official 573:ad23fe03a082 132 CRC_InitTypeDef Init; /*!< CRC configuration parameters */
mbed_official 573:ad23fe03a082 133
mbed_official 573:ad23fe03a082 134 HAL_LockTypeDef Lock; /*!< CRC Locking object */
mbed_official 573:ad23fe03a082 135
mbed_official 573:ad23fe03a082 136 __IO HAL_CRC_StateTypeDef State; /*!< CRC communication state */
mbed_official 573:ad23fe03a082 137
mbed_official 573:ad23fe03a082 138 uint32_t InputDataFormat; /*!< This parameter is a value of @ref CRC_Input_Buffer_Format and specifies input data format.
mbed_official 573:ad23fe03a082 139 Can be either
mbed_official 573:ad23fe03a082 140 CRC_INPUTDATA_FORMAT_BYTES input data is a stream of bytes (8-bit data)
mbed_official 573:ad23fe03a082 141 CRC_INPUTDATA_FORMAT_HALFWORDS input data is a stream of half-words (16-bit data)
mbed_official 573:ad23fe03a082 142 CRC_INPUTDATA_FORMAT_WORDS input data is a stream of words (32-bits data)
mbed_official 573:ad23fe03a082 143 Note that constant CRC_INPUT_FORMAT_UNDEFINED is defined but an initialization error
mbed_official 573:ad23fe03a082 144 must occur if InputBufferFormat is not one of the three values listed above */
mbed_official 573:ad23fe03a082 145 }CRC_HandleTypeDef;
mbed_official 573:ad23fe03a082 146 /**
mbed_official 573:ad23fe03a082 147 * @}
mbed_official 573:ad23fe03a082 148 */
mbed_official 573:ad23fe03a082 149
mbed_official 573:ad23fe03a082 150 /**
mbed_official 573:ad23fe03a082 151 * @}
mbed_official 573:ad23fe03a082 152 */
mbed_official 573:ad23fe03a082 153
mbed_official 573:ad23fe03a082 154 /* Exported constants --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 155 /** @defgroup CRC_Exported_Constants CRC exported constants
mbed_official 573:ad23fe03a082 156 * @{
mbed_official 573:ad23fe03a082 157 */
mbed_official 573:ad23fe03a082 158
mbed_official 573:ad23fe03a082 159 /** @defgroup CRC_Default_Polynomial_Value Default CRC generating polynomial
mbed_official 573:ad23fe03a082 160 * @{
mbed_official 573:ad23fe03a082 161 */
mbed_official 573:ad23fe03a082 162 #define DEFAULT_CRC32_POLY 0x04C11DB7
mbed_official 573:ad23fe03a082 163
mbed_official 573:ad23fe03a082 164 /**
mbed_official 573:ad23fe03a082 165 * @}
mbed_official 573:ad23fe03a082 166 */
mbed_official 573:ad23fe03a082 167
mbed_official 573:ad23fe03a082 168 /** @defgroup CRC_Default_InitValue Default CRC computation initialization value
mbed_official 573:ad23fe03a082 169 * @{
mbed_official 573:ad23fe03a082 170 */
mbed_official 573:ad23fe03a082 171 #define DEFAULT_CRC_INITVALUE 0xFFFFFFFF
mbed_official 573:ad23fe03a082 172
mbed_official 573:ad23fe03a082 173 /**
mbed_official 573:ad23fe03a082 174 * @}
mbed_official 573:ad23fe03a082 175 */
mbed_official 573:ad23fe03a082 176
mbed_official 573:ad23fe03a082 177 /** @defgroup CRC_Default_Polynomial Indicates whether or not default polynomial is used
mbed_official 573:ad23fe03a082 178 * @{
mbed_official 573:ad23fe03a082 179 */
mbed_official 573:ad23fe03a082 180 #define DEFAULT_POLYNOMIAL_ENABLE ((uint8_t)0x00)
mbed_official 573:ad23fe03a082 181 #define DEFAULT_POLYNOMIAL_DISABLE ((uint8_t)0x01)
mbed_official 573:ad23fe03a082 182
mbed_official 573:ad23fe03a082 183
mbed_official 573:ad23fe03a082 184 /**
mbed_official 573:ad23fe03a082 185 * @}
mbed_official 573:ad23fe03a082 186 */
mbed_official 573:ad23fe03a082 187
mbed_official 573:ad23fe03a082 188 /** @defgroup CRC_Default_InitValue_Use Indicates whether or not default init value is used
mbed_official 573:ad23fe03a082 189 * @{
mbed_official 573:ad23fe03a082 190 */
mbed_official 573:ad23fe03a082 191 #define DEFAULT_INIT_VALUE_ENABLE ((uint8_t)0x00)
mbed_official 573:ad23fe03a082 192 #define DEFAULT_INIT_VALUE_DISABLE ((uint8_t)0x01)
mbed_official 573:ad23fe03a082 193
mbed_official 573:ad23fe03a082 194 /**
mbed_official 573:ad23fe03a082 195 * @}
mbed_official 573:ad23fe03a082 196 */
mbed_official 573:ad23fe03a082 197
mbed_official 573:ad23fe03a082 198 /** @defgroup CRC_Polynomial_Sizes Polynomial sizes to configure the IP
mbed_official 573:ad23fe03a082 199 * @{
mbed_official 573:ad23fe03a082 200 */
mbed_official 573:ad23fe03a082 201 #define CRC_POLYLENGTH_32B ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 202 #define CRC_POLYLENGTH_16B ((uint32_t)CRC_CR_POLYSIZE_0)
mbed_official 573:ad23fe03a082 203 #define CRC_POLYLENGTH_8B ((uint32_t)CRC_CR_POLYSIZE_1)
mbed_official 573:ad23fe03a082 204 #define CRC_POLYLENGTH_7B ((uint32_t)CRC_CR_POLYSIZE)
mbed_official 573:ad23fe03a082 205 /**
mbed_official 573:ad23fe03a082 206 * @}
mbed_official 573:ad23fe03a082 207 */
mbed_official 573:ad23fe03a082 208
mbed_official 573:ad23fe03a082 209 /** @defgroup CRC_Polynomial_Size_Definitions CRC polynomial possible sizes actual definitions
mbed_official 573:ad23fe03a082 210 * @{
mbed_official 573:ad23fe03a082 211 */
mbed_official 573:ad23fe03a082 212 #define HAL_CRC_LENGTH_32B 32
mbed_official 573:ad23fe03a082 213 #define HAL_CRC_LENGTH_16B 16
mbed_official 573:ad23fe03a082 214 #define HAL_CRC_LENGTH_8B 8
mbed_official 573:ad23fe03a082 215 #define HAL_CRC_LENGTH_7B 7
mbed_official 573:ad23fe03a082 216
mbed_official 573:ad23fe03a082 217 /**
mbed_official 573:ad23fe03a082 218 * @}
mbed_official 573:ad23fe03a082 219 */
mbed_official 573:ad23fe03a082 220
mbed_official 573:ad23fe03a082 221 /** @defgroup CRC_Input_Buffer_Format CRC input buffer format
mbed_official 573:ad23fe03a082 222 * @{
mbed_official 573:ad23fe03a082 223 */
mbed_official 573:ad23fe03a082 224 /* WARNING: CRC_INPUT_FORMAT_UNDEFINED is created for reference purposes but
mbed_official 573:ad23fe03a082 225 * an error is triggered in HAL_CRC_Init() if InputDataFormat field is set
mbed_official 573:ad23fe03a082 226 * to CRC_INPUT_FORMAT_UNDEFINED: the format MUST be defined by the user for
mbed_official 573:ad23fe03a082 227 * the CRC APIs to provide a correct result */
mbed_official 573:ad23fe03a082 228 #define CRC_INPUTDATA_FORMAT_UNDEFINED ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 229 #define CRC_INPUTDATA_FORMAT_BYTES ((uint32_t)0x00000001)
mbed_official 573:ad23fe03a082 230 #define CRC_INPUTDATA_FORMAT_HALFWORDS ((uint32_t)0x00000002)
mbed_official 573:ad23fe03a082 231 #define CRC_INPUTDATA_FORMAT_WORDS ((uint32_t)0x00000003)
mbed_official 573:ad23fe03a082 232 /**
mbed_official 573:ad23fe03a082 233 * @}
mbed_official 573:ad23fe03a082 234 */
mbed_official 573:ad23fe03a082 235
mbed_official 573:ad23fe03a082 236 /**
mbed_official 573:ad23fe03a082 237 * @}
mbed_official 573:ad23fe03a082 238 */
mbed_official 573:ad23fe03a082 239 /* Exported macros -----------------------------------------------------------*/
mbed_official 573:ad23fe03a082 240
mbed_official 573:ad23fe03a082 241 /** @defgroup CRC_Exported_Macros CRC exported macros
mbed_official 573:ad23fe03a082 242 * @{
mbed_official 573:ad23fe03a082 243 */
mbed_official 573:ad23fe03a082 244
mbed_official 573:ad23fe03a082 245 /** @brief Reset CRC handle state
mbed_official 573:ad23fe03a082 246 * @param __HANDLE__: CRC handle.
mbed_official 573:ad23fe03a082 247 * @retval None
mbed_official 573:ad23fe03a082 248 */
mbed_official 573:ad23fe03a082 249 #define __HAL_CRC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRC_STATE_RESET)
mbed_official 573:ad23fe03a082 250
mbed_official 573:ad23fe03a082 251 /**
mbed_official 573:ad23fe03a082 252 * @brief Reset CRC Data Register.
mbed_official 573:ad23fe03a082 253 * @param __HANDLE__: CRC handle
mbed_official 573:ad23fe03a082 254 * @retval None.
mbed_official 573:ad23fe03a082 255 */
mbed_official 573:ad23fe03a082 256 #define __HAL_CRC_DR_RESET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_RESET)
mbed_official 573:ad23fe03a082 257
mbed_official 573:ad23fe03a082 258 /**
mbed_official 573:ad23fe03a082 259 * @brief Set CRC INIT non-default value
mbed_official 573:ad23fe03a082 260 * @param __HANDLE__ : CRC handle
mbed_official 573:ad23fe03a082 261 * @param __INIT__ : 32-bit initial value
mbed_official 573:ad23fe03a082 262 * @retval None.
mbed_official 573:ad23fe03a082 263 */
mbed_official 573:ad23fe03a082 264 #define __HAL_CRC_INITIALCRCVALUE_CONFIG(__HANDLE__, __INIT__) ((__HANDLE__)->Instance->INIT = (__INIT__))
mbed_official 573:ad23fe03a082 265
mbed_official 573:ad23fe03a082 266 /**
mbed_official 573:ad23fe03a082 267 * @brief Stores a 8-bit data in the Independent Data(ID) register.
mbed_official 573:ad23fe03a082 268 * @param __HANDLE__: CRC handle
mbed_official 573:ad23fe03a082 269 * @param __VALUE__: 8-bit value to be stored in the ID register
mbed_official 573:ad23fe03a082 270 * @retval None
mbed_official 573:ad23fe03a082 271 */
mbed_official 610:813dcc80987e 272 #define __HAL_CRC_SET_IDR(__HANDLE__, __VALUE__) (WRITE_REG((__HANDLE__)->Instance->IDR, CRC_IDR_IDR, (__VALUE__)))
mbed_official 573:ad23fe03a082 273
mbed_official 573:ad23fe03a082 274 /**
mbed_official 573:ad23fe03a082 275 * @brief Returns the 8-bit data stored in the Independent Data(ID) register.
mbed_official 573:ad23fe03a082 276 * @param __HANDLE__: CRC handle
mbed_official 573:ad23fe03a082 277 * @retval 8-bit value of the ID register
mbed_official 573:ad23fe03a082 278 */
mbed_official 573:ad23fe03a082 279 #define __HAL_CRC_GET_IDR(__HANDLE__) (((__HANDLE__)->Instance->IDR) & CRC_IDR_IDR)
mbed_official 573:ad23fe03a082 280 /**
mbed_official 573:ad23fe03a082 281 * @}
mbed_official 573:ad23fe03a082 282 */
mbed_official 573:ad23fe03a082 283
mbed_official 573:ad23fe03a082 284
mbed_official 573:ad23fe03a082 285 /* Include CRC HAL Extension module */
mbed_official 573:ad23fe03a082 286 #include "stm32f7xx_hal_crc_ex.h"
mbed_official 573:ad23fe03a082 287
mbed_official 573:ad23fe03a082 288 /* Exported functions --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 289 /** @defgroup CRC_Exported_Functions CRC Exported Functions
mbed_official 573:ad23fe03a082 290 * @{
mbed_official 573:ad23fe03a082 291 */
mbed_official 573:ad23fe03a082 292
mbed_official 573:ad23fe03a082 293 /** @defgroup CRC_Exported_Functions_Group1 Initialization/de-initialization functions
mbed_official 573:ad23fe03a082 294 * @{
mbed_official 573:ad23fe03a082 295 */
mbed_official 573:ad23fe03a082 296 /* Initialization and de-initialization functions ****************************/
mbed_official 573:ad23fe03a082 297 HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc);
mbed_official 573:ad23fe03a082 298 HAL_StatusTypeDef HAL_CRC_DeInit (CRC_HandleTypeDef *hcrc);
mbed_official 573:ad23fe03a082 299 void HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc);
mbed_official 573:ad23fe03a082 300 void HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc);
mbed_official 573:ad23fe03a082 301 /**
mbed_official 573:ad23fe03a082 302 * @}
mbed_official 573:ad23fe03a082 303 */
mbed_official 573:ad23fe03a082 304
mbed_official 573:ad23fe03a082 305 /* Aliases for inter STM32 series compatibility */
mbed_official 573:ad23fe03a082 306 #define HAL_CRC_Input_Data_Reverse HAL_CRCEx_Input_Data_Reverse
mbed_official 573:ad23fe03a082 307 #define HAL_CRC_Output_Data_Reverse HAL_CRCEx_Output_Data_Reverse
mbed_official 573:ad23fe03a082 308
mbed_official 573:ad23fe03a082 309 /** @defgroup CRC_Exported_Functions_Group2 Peripheral Control functions
mbed_official 573:ad23fe03a082 310 * @{
mbed_official 573:ad23fe03a082 311 */
mbed_official 573:ad23fe03a082 312 /* Peripheral Control functions ***********************************************/
mbed_official 573:ad23fe03a082 313 uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
mbed_official 573:ad23fe03a082 314 uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
mbed_official 573:ad23fe03a082 315 /**
mbed_official 573:ad23fe03a082 316 * @}
mbed_official 573:ad23fe03a082 317 */
mbed_official 573:ad23fe03a082 318
mbed_official 573:ad23fe03a082 319 /** @defgroup CRC_Exported_Functions_Group3 Peripheral State functions
mbed_official 573:ad23fe03a082 320 * @{
mbed_official 573:ad23fe03a082 321 */
mbed_official 573:ad23fe03a082 322 /* Peripheral State and Error functions ***************************************/
mbed_official 573:ad23fe03a082 323 HAL_CRC_StateTypeDef HAL_CRC_GetState(CRC_HandleTypeDef *hcrc);
mbed_official 573:ad23fe03a082 324 /**
mbed_official 573:ad23fe03a082 325 * @}
mbed_official 573:ad23fe03a082 326 */
mbed_official 573:ad23fe03a082 327
mbed_official 573:ad23fe03a082 328 /**
mbed_official 573:ad23fe03a082 329 * @}
mbed_official 573:ad23fe03a082 330 */
mbed_official 573:ad23fe03a082 331
mbed_official 573:ad23fe03a082 332
mbed_official 573:ad23fe03a082 333 /* Private types -------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 334 /** @defgroup CRC_Private_Types CRC Private Types
mbed_official 573:ad23fe03a082 335 * @{
mbed_official 573:ad23fe03a082 336 */
mbed_official 573:ad23fe03a082 337
mbed_official 573:ad23fe03a082 338 /**
mbed_official 573:ad23fe03a082 339 * @}
mbed_official 573:ad23fe03a082 340 */
mbed_official 573:ad23fe03a082 341
mbed_official 573:ad23fe03a082 342 /* Private defines -----------------------------------------------------------*/
mbed_official 573:ad23fe03a082 343 /** @defgroup CRC_Private_Defines CRC Private Defines
mbed_official 573:ad23fe03a082 344 * @{
mbed_official 573:ad23fe03a082 345 */
mbed_official 573:ad23fe03a082 346
mbed_official 573:ad23fe03a082 347 /**
mbed_official 573:ad23fe03a082 348 * @}
mbed_official 573:ad23fe03a082 349 */
mbed_official 573:ad23fe03a082 350
mbed_official 573:ad23fe03a082 351 /* Private variables ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 352 /** @defgroup CRC_Private_Variables CRC Private Variables
mbed_official 573:ad23fe03a082 353 * @{
mbed_official 573:ad23fe03a082 354 */
mbed_official 573:ad23fe03a082 355
mbed_official 573:ad23fe03a082 356 /**
mbed_official 573:ad23fe03a082 357 * @}
mbed_official 573:ad23fe03a082 358 */
mbed_official 573:ad23fe03a082 359
mbed_official 573:ad23fe03a082 360 /* Private constants ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 361 /** @defgroup CRC_Private_Constants CRC Private Constants
mbed_official 573:ad23fe03a082 362 * @{
mbed_official 573:ad23fe03a082 363 */
mbed_official 573:ad23fe03a082 364
mbed_official 573:ad23fe03a082 365 /**
mbed_official 573:ad23fe03a082 366 * @}
mbed_official 573:ad23fe03a082 367 */
mbed_official 573:ad23fe03a082 368
mbed_official 573:ad23fe03a082 369 /* Private macros ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 370 /** @defgroup CRC_Private_Macros CRC Private Macros
mbed_official 573:ad23fe03a082 371 * @{
mbed_official 573:ad23fe03a082 372 */
mbed_official 573:ad23fe03a082 373 #define IS_DEFAULT_POLYNOMIAL(__DEFAULT__) (((__DEFAULT__) == DEFAULT_POLYNOMIAL_ENABLE) || \
mbed_official 573:ad23fe03a082 374 ((__DEFAULT__) == DEFAULT_POLYNOMIAL_DISABLE))
mbed_official 573:ad23fe03a082 375 #define IS_DEFAULT_INIT_VALUE(__VALUE__) (((__VALUE__) == DEFAULT_INIT_VALUE_ENABLE) || \
mbed_official 573:ad23fe03a082 376 ((__VALUE__) == DEFAULT_INIT_VALUE_DISABLE))
mbed_official 573:ad23fe03a082 377 #define IS_CRC_POL_LENGTH(__LENGTH__) (((__LENGTH__) == CRC_POLYLENGTH_32B) || \
mbed_official 573:ad23fe03a082 378 ((__LENGTH__) == CRC_POLYLENGTH_16B) || \
mbed_official 573:ad23fe03a082 379 ((__LENGTH__) == CRC_POLYLENGTH_8B) || \
mbed_official 573:ad23fe03a082 380 ((__LENGTH__) == CRC_POLYLENGTH_7B))
mbed_official 573:ad23fe03a082 381 #define IS_CRC_INPUTDATA_FORMAT(__FORMAT__) (((__FORMAT__) == CRC_INPUTDATA_FORMAT_BYTES) || \
mbed_official 573:ad23fe03a082 382 ((__FORMAT__) == CRC_INPUTDATA_FORMAT_HALFWORDS) || \
mbed_official 573:ad23fe03a082 383 ((__FORMAT__) == CRC_INPUTDATA_FORMAT_WORDS))
mbed_official 573:ad23fe03a082 384
mbed_official 573:ad23fe03a082 385
mbed_official 573:ad23fe03a082 386 /**
mbed_official 573:ad23fe03a082 387 * @}
mbed_official 573:ad23fe03a082 388 */
mbed_official 573:ad23fe03a082 389
mbed_official 573:ad23fe03a082 390 /* Private functions prototypes ----------------------------------------------*/
mbed_official 573:ad23fe03a082 391 /** @defgroup CRC_Private_Functions_Prototypes CRC Private Functions Prototypes
mbed_official 573:ad23fe03a082 392 * @{
mbed_official 573:ad23fe03a082 393 */
mbed_official 573:ad23fe03a082 394
mbed_official 573:ad23fe03a082 395 /**
mbed_official 573:ad23fe03a082 396 * @}
mbed_official 573:ad23fe03a082 397 */
mbed_official 573:ad23fe03a082 398
mbed_official 573:ad23fe03a082 399 /* Private functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 400 /** @defgroup CRC_Private_Functions CRC Private Functions
mbed_official 573:ad23fe03a082 401 * @{
mbed_official 573:ad23fe03a082 402 */
mbed_official 573:ad23fe03a082 403
mbed_official 573:ad23fe03a082 404 /**
mbed_official 573:ad23fe03a082 405 * @}
mbed_official 573:ad23fe03a082 406 */
mbed_official 573:ad23fe03a082 407
mbed_official 573:ad23fe03a082 408 /**
mbed_official 573:ad23fe03a082 409 * @}
mbed_official 573:ad23fe03a082 410 */
mbed_official 573:ad23fe03a082 411
mbed_official 573:ad23fe03a082 412 /**
mbed_official 573:ad23fe03a082 413 * @}
mbed_official 573:ad23fe03a082 414 */
mbed_official 573:ad23fe03a082 415
mbed_official 573:ad23fe03a082 416 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 417 }
mbed_official 573:ad23fe03a082 418 #endif
mbed_official 573:ad23fe03a082 419
mbed_official 573:ad23fe03a082 420 #endif /* __STM32F7xx_HAL_CRC_H */
mbed_official 573:ad23fe03a082 421
mbed_official 573:ad23fe03a082 422 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 573:ad23fe03a082 423