You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

169 lines
5.8 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32f7xx_hal_crc_ex.h
  4. * @author MCD Application Team
  5. * @version V1.2.2
  6. * @date 14-April-2017
  7. * @brief Header file of CRC HAL extension module.
  8. ******************************************************************************
  9. * @attention
  10. *
  11. * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  12. *
  13. * Redistribution and use in source and binary forms, with or without modification,
  14. * are permitted provided that the following conditions are met:
  15. * 1. Redistributions of source code must retain the above copyright notice,
  16. * this list of conditions and the following disclaimer.
  17. * 2. Redistributions in binary form must reproduce the above copyright notice,
  18. * this list of conditions and the following disclaimer in the documentation
  19. * and/or other materials provided with the distribution.
  20. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  21. * may be used to endorse or promote products derived from this software
  22. * without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  25. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  26. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  27. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  28. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  29. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  30. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  31. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  32. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  33. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34. *
  35. ******************************************************************************
  36. */
  37. /* Define to prevent recursive inclusion -------------------------------------*/
  38. #ifndef __STM32F7xx_HAL_CRC_EX_H
  39. #define __STM32F7xx_HAL_CRC_EX_H
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. /* Includes ------------------------------------------------------------------*/
  44. #include "stm32f7xx_hal_def.h"
  45. /** @addtogroup STM32F7xx_HAL_Driver
  46. * @{
  47. */
  48. /** @defgroup CRCEx CRCEx
  49. * @{
  50. */
  51. /* Exported types ------------------------------------------------------------*/
  52. /* Exported constants --------------------------------------------------------*/
  53. /** @defgroup CRCEx_Exported_Constants CRC Extended exported constants
  54. * @{
  55. */
  56. /** @defgroup CRCEx_Input_Data_Inversion CRC Extended input data inversion modes
  57. * @{
  58. */
  59. #define CRC_INPUTDATA_INVERSION_NONE ((uint32_t)0x00000000U)
  60. #define CRC_INPUTDATA_INVERSION_BYTE ((uint32_t)CRC_CR_REV_IN_0)
  61. #define CRC_INPUTDATA_INVERSION_HALFWORD ((uint32_t)CRC_CR_REV_IN_1)
  62. #define CRC_INPUTDATA_INVERSION_WORD ((uint32_t)CRC_CR_REV_IN)
  63. #define IS_CRC_INPUTDATA_INVERSION_MODE(__MODE__) (((__MODE__) == CRC_INPUTDATA_INVERSION_NONE) || \
  64. ((__MODE__) == CRC_INPUTDATA_INVERSION_BYTE) || \
  65. ((__MODE__) == CRC_INPUTDATA_INVERSION_HALFWORD) || \
  66. ((__MODE__) == CRC_INPUTDATA_INVERSION_WORD))
  67. /**
  68. * @}
  69. */
  70. /** @defgroup CRCEx_Output_Data_Inversion CRC Extended output data inversion modes
  71. * @{
  72. */
  73. #define CRC_OUTPUTDATA_INVERSION_DISABLE ((uint32_t)0x00000000U)
  74. #define CRC_OUTPUTDATA_INVERSION_ENABLE ((uint32_t)CRC_CR_REV_OUT)
  75. #define IS_CRC_OUTPUTDATA_INVERSION_MODE(__MODE__) (((__MODE__) == CRC_OUTPUTDATA_INVERSION_DISABLE) || \
  76. ((__MODE__) == CRC_OUTPUTDATA_INVERSION_ENABLE))
  77. /**
  78. * @}
  79. */
  80. /**
  81. * @}
  82. */
  83. /* Exported macro ------------------------------------------------------------*/
  84. /** @defgroup CRCEx_Exported_Macros CRC Extended exported macros
  85. * @{
  86. */
  87. /**
  88. * @brief Set CRC output reversal
  89. * @param __HANDLE__ : CRC handle
  90. * @retval None.
  91. */
  92. #define __HAL_CRC_OUTPUTREVERSAL_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_REV_OUT)
  93. /**
  94. * @brief Unset CRC output reversal
  95. * @param __HANDLE__ : CRC handle
  96. * @retval None.
  97. */
  98. #define __HAL_CRC_OUTPUTREVERSAL_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(CRC_CR_REV_OUT))
  99. /**
  100. * @brief Set CRC non-default polynomial
  101. * @param __HANDLE__ : CRC handle
  102. * @param __POLYNOMIAL__: 7, 8, 16 or 32-bit polynomial
  103. * @retval None.
  104. */
  105. #define __HAL_CRC_POLYNOMIAL_CONFIG(__HANDLE__, __POLYNOMIAL__) ((__HANDLE__)->Instance->POL = (__POLYNOMIAL__))
  106. /**
  107. * @}
  108. */
  109. /** @defgroup CRCEx_Exported_Functions CRC Extended Exported Functions
  110. * @{
  111. */
  112. /** @defgroup CRCEx_Exported_Functions_Group1 Extended CRC features functions
  113. * @{
  114. */
  115. /* Exported functions --------------------------------------------------------*/
  116. /* Initialization and de-initialization functions ****************************/
  117. HAL_StatusTypeDef HAL_CRCEx_Polynomial_Set(CRC_HandleTypeDef *hcrc, uint32_t Pol, uint32_t PolyLength);
  118. HAL_StatusTypeDef HAL_CRCEx_Input_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t InputReverseMode);
  119. HAL_StatusTypeDef HAL_CRCEx_Output_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t OutputReverseMode);
  120. /* Peripheral Control functions ***********************************************/
  121. /* Peripheral State and Error functions ***************************************/
  122. /**
  123. * @}
  124. */
  125. /**
  126. * @}
  127. */
  128. /**
  129. * @}
  130. */
  131. /**
  132. * @}
  133. */
  134. #ifdef __cplusplus
  135. }
  136. #endif
  137. #endif /* __STM32F7xx_HAL_CRC_EX_H */
  138. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/