Subversion Repositories LedShow

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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