inport from local

Dependents:   Hobbyking_Cheetah_0511

Committer:
NYX
Date:
Mon Mar 16 06:35:48 2020 +0000
Revision:
0:85b3fd62ea1a
reinport to mbed;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NYX 0:85b3fd62ea1a 1 /**
NYX 0:85b3fd62ea1a 2 ******************************************************************************
NYX 0:85b3fd62ea1a 3 * @file stm32f4xx_ll_crc.h
NYX 0:85b3fd62ea1a 4 * @author MCD Application Team
NYX 0:85b3fd62ea1a 5 * @version V1.7.1
NYX 0:85b3fd62ea1a 6 * @date 14-April-2017
NYX 0:85b3fd62ea1a 7 * @brief Header file of CRC LL module.
NYX 0:85b3fd62ea1a 8 ******************************************************************************
NYX 0:85b3fd62ea1a 9 * @attention
NYX 0:85b3fd62ea1a 10 *
NYX 0:85b3fd62ea1a 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
NYX 0:85b3fd62ea1a 12 *
NYX 0:85b3fd62ea1a 13 * Redistribution and use in source and binary forms, with or without modification,
NYX 0:85b3fd62ea1a 14 * are permitted provided that the following conditions are met:
NYX 0:85b3fd62ea1a 15 * 1. Redistributions of source code must retain the above copyright notice,
NYX 0:85b3fd62ea1a 16 * this list of conditions and the following disclaimer.
NYX 0:85b3fd62ea1a 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
NYX 0:85b3fd62ea1a 18 * this list of conditions and the following disclaimer in the documentation
NYX 0:85b3fd62ea1a 19 * and/or other materials provided with the distribution.
NYX 0:85b3fd62ea1a 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
NYX 0:85b3fd62ea1a 21 * may be used to endorse or promote products derived from this software
NYX 0:85b3fd62ea1a 22 * without specific prior written permission.
NYX 0:85b3fd62ea1a 23 *
NYX 0:85b3fd62ea1a 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
NYX 0:85b3fd62ea1a 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
NYX 0:85b3fd62ea1a 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
NYX 0:85b3fd62ea1a 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
NYX 0:85b3fd62ea1a 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
NYX 0:85b3fd62ea1a 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
NYX 0:85b3fd62ea1a 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
NYX 0:85b3fd62ea1a 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
NYX 0:85b3fd62ea1a 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
NYX 0:85b3fd62ea1a 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
NYX 0:85b3fd62ea1a 34 *
NYX 0:85b3fd62ea1a 35 ******************************************************************************
NYX 0:85b3fd62ea1a 36 */
NYX 0:85b3fd62ea1a 37
NYX 0:85b3fd62ea1a 38 /* Define to prevent recursive inclusion -------------------------------------*/
NYX 0:85b3fd62ea1a 39 #ifndef __STM32F4xx_LL_CRC_H
NYX 0:85b3fd62ea1a 40 #define __STM32F4xx_LL_CRC_H
NYX 0:85b3fd62ea1a 41
NYX 0:85b3fd62ea1a 42 #ifdef __cplusplus
NYX 0:85b3fd62ea1a 43 extern "C" {
NYX 0:85b3fd62ea1a 44 #endif
NYX 0:85b3fd62ea1a 45
NYX 0:85b3fd62ea1a 46 /* Includes ------------------------------------------------------------------*/
NYX 0:85b3fd62ea1a 47 #include "stm32f4xx.h"
NYX 0:85b3fd62ea1a 48
NYX 0:85b3fd62ea1a 49 /** @addtogroup STM32F4xx_LL_Driver
NYX 0:85b3fd62ea1a 50 * @{
NYX 0:85b3fd62ea1a 51 */
NYX 0:85b3fd62ea1a 52
NYX 0:85b3fd62ea1a 53 #if defined(CRC)
NYX 0:85b3fd62ea1a 54
NYX 0:85b3fd62ea1a 55 /** @defgroup CRC_LL CRC
NYX 0:85b3fd62ea1a 56 * @{
NYX 0:85b3fd62ea1a 57 */
NYX 0:85b3fd62ea1a 58
NYX 0:85b3fd62ea1a 59 /* Private types -------------------------------------------------------------*/
NYX 0:85b3fd62ea1a 60 /* Private variables ---------------------------------------------------------*/
NYX 0:85b3fd62ea1a 61 /* Private constants ---------------------------------------------------------*/
NYX 0:85b3fd62ea1a 62 /* Private macros ------------------------------------------------------------*/
NYX 0:85b3fd62ea1a 63
NYX 0:85b3fd62ea1a 64 /* Exported types ------------------------------------------------------------*/
NYX 0:85b3fd62ea1a 65 /* Exported constants --------------------------------------------------------*/
NYX 0:85b3fd62ea1a 66
NYX 0:85b3fd62ea1a 67 /* Exported macro ------------------------------------------------------------*/
NYX 0:85b3fd62ea1a 68 /** @defgroup CRC_LL_Exported_Macros CRC Exported Macros
NYX 0:85b3fd62ea1a 69 * @{
NYX 0:85b3fd62ea1a 70 */
NYX 0:85b3fd62ea1a 71
NYX 0:85b3fd62ea1a 72 /** @defgroup CRC_LL_EM_WRITE_READ Common Write and read registers Macros
NYX 0:85b3fd62ea1a 73 * @{
NYX 0:85b3fd62ea1a 74 */
NYX 0:85b3fd62ea1a 75
NYX 0:85b3fd62ea1a 76 /**
NYX 0:85b3fd62ea1a 77 * @brief Write a value in CRC register
NYX 0:85b3fd62ea1a 78 * @param __INSTANCE__ CRC Instance
NYX 0:85b3fd62ea1a 79 * @param __REG__ Register to be written
NYX 0:85b3fd62ea1a 80 * @param __VALUE__ Value to be written in the register
NYX 0:85b3fd62ea1a 81 * @retval None
NYX 0:85b3fd62ea1a 82 */
NYX 0:85b3fd62ea1a 83 #define LL_CRC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
NYX 0:85b3fd62ea1a 84
NYX 0:85b3fd62ea1a 85 /**
NYX 0:85b3fd62ea1a 86 * @brief Read a value in CRC register
NYX 0:85b3fd62ea1a 87 * @param __INSTANCE__ CRC Instance
NYX 0:85b3fd62ea1a 88 * @param __REG__ Register to be read
NYX 0:85b3fd62ea1a 89 * @retval Register value
NYX 0:85b3fd62ea1a 90 */
NYX 0:85b3fd62ea1a 91 #define LL_CRC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
NYX 0:85b3fd62ea1a 92 /**
NYX 0:85b3fd62ea1a 93 * @}
NYX 0:85b3fd62ea1a 94 */
NYX 0:85b3fd62ea1a 95
NYX 0:85b3fd62ea1a 96 /**
NYX 0:85b3fd62ea1a 97 * @}
NYX 0:85b3fd62ea1a 98 */
NYX 0:85b3fd62ea1a 99
NYX 0:85b3fd62ea1a 100
NYX 0:85b3fd62ea1a 101 /* Exported functions --------------------------------------------------------*/
NYX 0:85b3fd62ea1a 102 /** @defgroup CRC_LL_Exported_Functions CRC Exported Functions
NYX 0:85b3fd62ea1a 103 * @{
NYX 0:85b3fd62ea1a 104 */
NYX 0:85b3fd62ea1a 105
NYX 0:85b3fd62ea1a 106 /** @defgroup CRC_LL_EF_Configuration CRC Configuration functions
NYX 0:85b3fd62ea1a 107 * @{
NYX 0:85b3fd62ea1a 108 */
NYX 0:85b3fd62ea1a 109
NYX 0:85b3fd62ea1a 110 /**
NYX 0:85b3fd62ea1a 111 * @brief Reset the CRC calculation unit.
NYX 0:85b3fd62ea1a 112 * @rmtoll CR RESET LL_CRC_ResetCRCCalculationUnit
NYX 0:85b3fd62ea1a 113 * @param CRCx CRC Instance
NYX 0:85b3fd62ea1a 114 * @retval None
NYX 0:85b3fd62ea1a 115 */
NYX 0:85b3fd62ea1a 116 __STATIC_INLINE void LL_CRC_ResetCRCCalculationUnit(CRC_TypeDef *CRCx)
NYX 0:85b3fd62ea1a 117 {
NYX 0:85b3fd62ea1a 118 WRITE_REG(CRCx->CR, CRC_CR_RESET);
NYX 0:85b3fd62ea1a 119 }
NYX 0:85b3fd62ea1a 120
NYX 0:85b3fd62ea1a 121 /**
NYX 0:85b3fd62ea1a 122 * @}
NYX 0:85b3fd62ea1a 123 */
NYX 0:85b3fd62ea1a 124
NYX 0:85b3fd62ea1a 125 /** @defgroup CRC_LL_EF_Data_Management Data_Management
NYX 0:85b3fd62ea1a 126 * @{
NYX 0:85b3fd62ea1a 127 */
NYX 0:85b3fd62ea1a 128
NYX 0:85b3fd62ea1a 129 /**
NYX 0:85b3fd62ea1a 130 * @brief Write given 32-bit data to the CRC calculator
NYX 0:85b3fd62ea1a 131 * @rmtoll DR DR LL_CRC_FeedData32
NYX 0:85b3fd62ea1a 132 * @param CRCx CRC Instance
NYX 0:85b3fd62ea1a 133 * @param InData value to be provided to CRC calculator between between Min_Data=0 and Max_Data=0xFFFFFFFF
NYX 0:85b3fd62ea1a 134 * @retval None
NYX 0:85b3fd62ea1a 135 */
NYX 0:85b3fd62ea1a 136 __STATIC_INLINE void LL_CRC_FeedData32(CRC_TypeDef *CRCx, uint32_t InData)
NYX 0:85b3fd62ea1a 137 {
NYX 0:85b3fd62ea1a 138 WRITE_REG(CRCx->DR, InData);
NYX 0:85b3fd62ea1a 139 }
NYX 0:85b3fd62ea1a 140
NYX 0:85b3fd62ea1a 141 /**
NYX 0:85b3fd62ea1a 142 * @brief Return current CRC calculation result. 32 bits value is returned.
NYX 0:85b3fd62ea1a 143 * @rmtoll DR DR LL_CRC_ReadData32
NYX 0:85b3fd62ea1a 144 * @param CRCx CRC Instance
NYX 0:85b3fd62ea1a 145 * @retval Current CRC calculation result as stored in CRC_DR register (32 bits).
NYX 0:85b3fd62ea1a 146 */
NYX 0:85b3fd62ea1a 147 __STATIC_INLINE uint32_t LL_CRC_ReadData32(CRC_TypeDef *CRCx)
NYX 0:85b3fd62ea1a 148 {
NYX 0:85b3fd62ea1a 149 return (uint32_t)(READ_REG(CRCx->DR));
NYX 0:85b3fd62ea1a 150 }
NYX 0:85b3fd62ea1a 151
NYX 0:85b3fd62ea1a 152 /**
NYX 0:85b3fd62ea1a 153 * @brief Return data stored in the Independent Data(IDR) register.
NYX 0:85b3fd62ea1a 154 * @note This register can be used as a temporary storage location for one byte.
NYX 0:85b3fd62ea1a 155 * @rmtoll IDR IDR LL_CRC_Read_IDR
NYX 0:85b3fd62ea1a 156 * @param CRCx CRC Instance
NYX 0:85b3fd62ea1a 157 * @retval Value stored in CRC_IDR register (General-purpose 8-bit data register).
NYX 0:85b3fd62ea1a 158 */
NYX 0:85b3fd62ea1a 159 __STATIC_INLINE uint32_t LL_CRC_Read_IDR(CRC_TypeDef *CRCx)
NYX 0:85b3fd62ea1a 160 {
NYX 0:85b3fd62ea1a 161 return (uint32_t)(READ_REG(CRCx->IDR));
NYX 0:85b3fd62ea1a 162 }
NYX 0:85b3fd62ea1a 163
NYX 0:85b3fd62ea1a 164 /**
NYX 0:85b3fd62ea1a 165 * @brief Store data in the Independent Data(IDR) register.
NYX 0:85b3fd62ea1a 166 * @note This register can be used as a temporary storage location for one byte.
NYX 0:85b3fd62ea1a 167 * @rmtoll IDR IDR LL_CRC_Write_IDR
NYX 0:85b3fd62ea1a 168 * @param CRCx CRC Instance
NYX 0:85b3fd62ea1a 169 * @param InData value to be stored in CRC_IDR register (8-bit) between between Min_Data=0 and Max_Data=0xFF
NYX 0:85b3fd62ea1a 170 * @retval None
NYX 0:85b3fd62ea1a 171 */
NYX 0:85b3fd62ea1a 172 __STATIC_INLINE void LL_CRC_Write_IDR(CRC_TypeDef *CRCx, uint32_t InData)
NYX 0:85b3fd62ea1a 173 {
NYX 0:85b3fd62ea1a 174 *((uint8_t __IO *)(&CRCx->IDR)) = (uint8_t) InData;
NYX 0:85b3fd62ea1a 175 }
NYX 0:85b3fd62ea1a 176 /**
NYX 0:85b3fd62ea1a 177 * @}
NYX 0:85b3fd62ea1a 178 */
NYX 0:85b3fd62ea1a 179
NYX 0:85b3fd62ea1a 180 #if defined(USE_FULL_LL_DRIVER)
NYX 0:85b3fd62ea1a 181 /** @defgroup CRC_LL_EF_Init Initialization and de-initialization functions
NYX 0:85b3fd62ea1a 182 * @{
NYX 0:85b3fd62ea1a 183 */
NYX 0:85b3fd62ea1a 184
NYX 0:85b3fd62ea1a 185 ErrorStatus LL_CRC_DeInit(CRC_TypeDef *CRCx);
NYX 0:85b3fd62ea1a 186
NYX 0:85b3fd62ea1a 187 /**
NYX 0:85b3fd62ea1a 188 * @}
NYX 0:85b3fd62ea1a 189 */
NYX 0:85b3fd62ea1a 190 #endif /* USE_FULL_LL_DRIVER */
NYX 0:85b3fd62ea1a 191
NYX 0:85b3fd62ea1a 192 /**
NYX 0:85b3fd62ea1a 193 * @}
NYX 0:85b3fd62ea1a 194 */
NYX 0:85b3fd62ea1a 195
NYX 0:85b3fd62ea1a 196 /**
NYX 0:85b3fd62ea1a 197 * @}
NYX 0:85b3fd62ea1a 198 */
NYX 0:85b3fd62ea1a 199
NYX 0:85b3fd62ea1a 200 #endif /* defined(CRC) */
NYX 0:85b3fd62ea1a 201
NYX 0:85b3fd62ea1a 202 /**
NYX 0:85b3fd62ea1a 203 * @}
NYX 0:85b3fd62ea1a 204 */
NYX 0:85b3fd62ea1a 205
NYX 0:85b3fd62ea1a 206 #ifdef __cplusplus
NYX 0:85b3fd62ea1a 207 }
NYX 0:85b3fd62ea1a 208 #endif
NYX 0:85b3fd62ea1a 209
NYX 0:85b3fd62ea1a 210 #endif /* __STM32F4xx_LL_CRC_H */
NYX 0:85b3fd62ea1a 211
NYX 0:85b3fd62ea1a 212 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/