mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Thu Sep 06 13:40:20 2018 +0100
Revision:
187:0387e8f68319
Parent:
165:e614a9f1c9e2
mbed-dev library. Release version 163

Who changed what in which revision?

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