STM32L486xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_hal_crc_ex.h 00004 * @author MCD Application Team 00005 * @brief Header file of CRC HAL extended module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> 00010 * 00011 * Redistribution and use in source and binary forms, with or without modification, 00012 * are permitted provided that the following conditions are met: 00013 * 1. Redistributions of source code must retain the above copyright notice, 00014 * this list of conditions and the following disclaimer. 00015 * 2. Redistributions in binary form must reproduce the above copyright notice, 00016 * this list of conditions and the following disclaimer in the documentation 00017 * and/or other materials provided with the distribution. 00018 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00019 * may be used to endorse or promote products derived from this software 00020 * without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00023 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00024 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00025 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00026 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00027 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00028 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00029 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00030 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00031 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00032 * 00033 ****************************************************************************** 00034 */ 00035 00036 /* Define to prevent recursive inclusion -------------------------------------*/ 00037 #ifndef __STM32L4xx_HAL_CRC_EX_H 00038 #define __STM32L4xx_HAL_CRC_EX_H 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 /* Includes ------------------------------------------------------------------*/ 00045 #include "stm32l4xx_hal_def.h" 00046 00047 /** @addtogroup STM32L4xx_HAL_Driver 00048 * @{ 00049 */ 00050 00051 /** @addtogroup CRCEx 00052 * @{ 00053 */ 00054 00055 /* Exported types ------------------------------------------------------------*/ 00056 /* Exported constants --------------------------------------------------------*/ 00057 /** @defgroup CRCEx_Exported_Constants CRC Extended Exported Constants 00058 * @{ 00059 */ 00060 00061 /** @defgroup CRCEx_Input_Data_Inversion Input Data Inversion Modes 00062 * @{ 00063 */ 00064 #define CRC_INPUTDATA_INVERSION_NONE 0x00000000U /*!< No input data inversion */ 00065 #define CRC_INPUTDATA_INVERSION_BYTE CRC_CR_REV_IN_0 /*!< Byte-wise input data inversion */ 00066 #define CRC_INPUTDATA_INVERSION_HALFWORD CRC_CR_REV_IN_1 /*!< HalfWord-wise input data inversion */ 00067 #define CRC_INPUTDATA_INVERSION_WORD CRC_CR_REV_IN /*!< Word-wise input data inversion */ 00068 /** 00069 * @} 00070 */ 00071 00072 /** @defgroup CRCEx_Output_Data_Inversion Output Data Inversion Modes 00073 * @{ 00074 */ 00075 #define CRC_OUTPUTDATA_INVERSION_DISABLE 0x00000000U /*!< No output data inversion */ 00076 #define CRC_OUTPUTDATA_INVERSION_ENABLE CRC_CR_REV_OUT /*!< Bit-wise output data inversion */ 00077 /** 00078 * @} 00079 */ 00080 00081 /** 00082 * @} 00083 */ 00084 00085 /* Exported macro ------------------------------------------------------------*/ 00086 /** @defgroup CRCEx_Exported_Macros CRC Extended Exported Macros 00087 * @{ 00088 */ 00089 00090 /** 00091 * @brief Set CRC output reversal 00092 * @param __HANDLE__ CRC handle 00093 * @retval None 00094 */ 00095 #define __HAL_CRC_OUTPUTREVERSAL_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_REV_OUT) 00096 00097 /** 00098 * @brief Unset CRC output reversal 00099 * @param __HANDLE__ CRC handle 00100 * @retval None 00101 */ 00102 #define __HAL_CRC_OUTPUTREVERSAL_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(CRC_CR_REV_OUT)) 00103 00104 /** 00105 * @brief Set CRC non-default polynomial 00106 * @param __HANDLE__ CRC handle 00107 * @param __POLYNOMIAL__ 7, 8, 16 or 32-bit polynomial 00108 * @retval None 00109 */ 00110 #define __HAL_CRC_POLYNOMIAL_CONFIG(__HANDLE__, __POLYNOMIAL__) ((__HANDLE__)->Instance->POL = (__POLYNOMIAL__)) 00111 00112 /** 00113 * @} 00114 */ 00115 00116 /* Private macros --------------------------------------------------------*/ 00117 /** @defgroup CRCEx_Private_Macros CRC Extended Private Macros 00118 * @{ 00119 */ 00120 00121 #define IS_CRC_INPUTDATA_INVERSION_MODE(MODE) (((MODE) == CRC_INPUTDATA_INVERSION_NONE) || \ 00122 ((MODE) == CRC_INPUTDATA_INVERSION_BYTE) || \ 00123 ((MODE) == CRC_INPUTDATA_INVERSION_HALFWORD) || \ 00124 ((MODE) == CRC_INPUTDATA_INVERSION_WORD)) 00125 00126 #define IS_CRC_OUTPUTDATA_INVERSION_MODE(MODE) (((MODE) == CRC_OUTPUTDATA_INVERSION_DISABLE) || \ 00127 ((MODE) == CRC_OUTPUTDATA_INVERSION_ENABLE)) 00128 00129 /** 00130 * @} 00131 */ 00132 00133 /* Exported functions --------------------------------------------------------*/ 00134 00135 /** @addtogroup CRCEx_Exported_Functions 00136 * @{ 00137 */ 00138 00139 /** @addtogroup CRCEx_Exported_Functions_Group1 00140 * @{ 00141 */ 00142 /* Initialization and de-initialization functions ****************************/ 00143 HAL_StatusTypeDef HAL_CRCEx_Polynomial_Set(CRC_HandleTypeDef *hcrc, uint32_t Pol, uint32_t PolyLength); 00144 HAL_StatusTypeDef HAL_CRCEx_Input_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t InputReverseMode); 00145 HAL_StatusTypeDef HAL_CRCEx_Output_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t OutputReverseMode); 00146 00147 /** 00148 * @} 00149 */ 00150 00151 /** 00152 * @} 00153 */ 00154 00155 /** 00156 * @} 00157 */ 00158 00159 /** 00160 * @} 00161 */ 00162 00163 #ifdef __cplusplus 00164 } 00165 #endif 00166 00167 #endif /* __STM32L4xx_HAL_CRC_EX_H */ 00168 00169 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/