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_hal_crc.h
  4.   * @author  MCD Application Team
  5.   * @brief   Header file of CRC HAL 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_HAL_CRC_H
  38. #define __STM32F1xx_HAL_CRC_H
  39.  
  40. #ifdef __cplusplus
  41.  extern "C" {
  42. #endif
  43.  
  44. /* Includes ------------------------------------------------------------------*/
  45. #include "stm32f1xx_hal_def.h"
  46.  
  47. /** @addtogroup STM32F1xx_HAL_Driver
  48.   * @{
  49.   */
  50.  
  51. /** @addtogroup CRC
  52.   * @{
  53.   */
  54.  
  55. /* Exported types ------------------------------------------------------------*/
  56.  
  57. /** @defgroup CRC_Exported_Types CRC Exported Types
  58.   * @{
  59.   */
  60.  
  61. /**
  62.   * @brief  CRC HAL State Structure definition  
  63.   */
  64. typedef enum
  65. {
  66.   HAL_CRC_STATE_RESET     = 0x00U,  /*!< CRC not yet initialized or disabled */
  67.   HAL_CRC_STATE_READY     = 0x01U,  /*!< CRC initialized and ready for use   */
  68.   HAL_CRC_STATE_BUSY      = 0x02U,  /*!< CRC internal process is ongoing     */
  69.   HAL_CRC_STATE_TIMEOUT   = 0x03U,  /*!< CRC timeout state                   */
  70.   HAL_CRC_STATE_ERROR     = 0x04U   /*!< CRC error state                     */
  71.  
  72. }HAL_CRC_StateTypeDef;
  73.  
  74. /**
  75.   * @brief  CRC handle Structure definition
  76.   */
  77. typedef struct
  78. {
  79.   CRC_TypeDef                 *Instance;  /*!< Register base address   */
  80.  
  81.   HAL_LockTypeDef             Lock;       /*!< CRC locking object      */
  82.  
  83.   __IO HAL_CRC_StateTypeDef   State;      /*!< CRC communication state */
  84.  
  85. }CRC_HandleTypeDef;
  86.  
  87. /**
  88.   * @}
  89.   */
  90.  
  91. /* Exported constants --------------------------------------------------------*/
  92. /* Exported macro ------------------------------------------------------------*/
  93.  
  94. /** @defgroup CRC_Exported_Macros CRC Exported Macros
  95.   * @{
  96.   */
  97.  
  98. /** @brief Reset CRC handle state
  99.   * @param  __HANDLE__: CRC handle
  100.   * @retval None
  101.   */
  102. #define __HAL_CRC_RESET_HANDLE_STATE(__HANDLE__)  ((__HANDLE__)->State = HAL_CRC_STATE_RESET)
  103.  
  104. /**
  105.   * @brief  Resets CRC Data Register.
  106.   * @param  __HANDLE__: CRC handle
  107.   * @retval None
  108.   */
  109. #define __HAL_CRC_DR_RESET(__HANDLE__)            (SET_BIT((__HANDLE__)->Instance->CR,CRC_CR_RESET))
  110.  
  111. /**
  112.   * @brief Stores a 8-bit data in the Independent Data(ID) register.
  113.   * @param __HANDLE__: CRC handle
  114.   * @param __VALUE__: 8-bit value to be stored in the ID register
  115.   * @retval None
  116.   */
  117. #define __HAL_CRC_SET_IDR(__HANDLE__, __VALUE__) (WRITE_REG((__HANDLE__)->Instance->IDR, (__VALUE__)))
  118.  
  119. /**
  120.   * @brief Returns the 8-bit data stored in the Independent Data(ID) register.
  121.   * @param __HANDLE__: CRC handle
  122.   * @retval 8-bit value of the ID register
  123.   */
  124. #define __HAL_CRC_GET_IDR(__HANDLE__) (((__HANDLE__)->Instance->IDR) & CRC_IDR_IDR)
  125.  
  126. /**
  127.   * @}
  128.   */
  129.  
  130. /* Exported functions --------------------------------------------------------*/
  131.  
  132. /** @addtogroup CRC_Exported_Functions
  133.   * @{
  134.   */
  135.  
  136. /** @addtogroup CRC_Exported_Functions_Group1
  137.   * @{
  138.   */
  139.  
  140. /* Initialization/de-initialization functions  **********************************/
  141. HAL_StatusTypeDef     HAL_CRC_Init(CRC_HandleTypeDef *hcrc);
  142. HAL_StatusTypeDef     HAL_CRC_DeInit (CRC_HandleTypeDef *hcrc);
  143. void                  HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc);
  144. void                  HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc);
  145.  
  146. /**
  147.   * @}
  148.   */
  149.  
  150. /** @addtogroup CRC_Exported_Functions_Group2
  151.   * @{
  152.   */
  153.  
  154. /* Peripheral Control functions  ************************************************/
  155. uint32_t              HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
  156. uint32_t              HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
  157.  
  158.  
  159. /**
  160.   * @}
  161.   */
  162.  
  163. /** @addtogroup CRC_Exported_Functions_Group3
  164.   ** @{
  165.   */
  166.  
  167. /* Peripheral State functions  **************************************************/
  168. HAL_CRC_StateTypeDef  HAL_CRC_GetState(CRC_HandleTypeDef *hcrc);
  169.  
  170. /**
  171.   * @}
  172.   */
  173.  
  174.  
  175. /**
  176.   * @}
  177.   */
  178.  
  179. /**
  180.   * @}
  181.   */
  182.  
  183. /**
  184.   * @}
  185.   */
  186.  
  187. #ifdef __cplusplus
  188. }
  189. #endif
  190.  
  191. #endif /* __STM32F1xx_HAL_CRC_H */
  192.  
  193. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  194.