Initial commit

Dependencies:   FastPWM

Committer:
lypinator
Date:
Wed Sep 16 01:11:49 2020 +0000
Revision:
0:bb348c97df44
Added PWM

Who changed what in which revision?

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