| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | /**  ******************************************************************************  * @file    stm32f4xx_crc.c  * @author  MCD Application Team  * @version V1.0.2  * @date    05-March-2012  * @brief   This file provides all the CRC firmware functions.  ******************************************************************************  * @attention  *  * <h2><center>© COPYRIGHT 2012 STMicroelectronics</center></h2>  *  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");  * You may not use this file except in compliance with the License.  * You may obtain a copy of the License at:  *  *        http://www.st.com/software_license_agreement_liberty_v2  *  * Unless required by applicable law or agreed to in writing, software   * distributed under the License is distributed on an "AS IS" BASIS,   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  *  ******************************************************************************  *//* Includes ------------------------------------------------------------------*/#include "stm32f4xx_crc.h"/** @addtogroup STM32F4xx_StdPeriph_Driver  * @{  *//** @defgroup CRC   * @brief CRC driver modules  * @{  *//* Private typedef -----------------------------------------------------------*//* Private define ------------------------------------------------------------*//* Private macro -------------------------------------------------------------*//* Private variables ---------------------------------------------------------*//* Private function prototypes -----------------------------------------------*//* Private functions ---------------------------------------------------------*//** @defgroup CRC_Private_Functions  * @{  *//**  * @brief  Resets the CRC Data register (DR).  * @param  None  * @retval None  */void CRC_ResetDR(void){  /* Reset CRC generator */  CRC->CR = CRC_CR_RESET;}/**  * @brief  Computes the 32-bit CRC of a given data word(32-bit).  * @param  Data: data word(32-bit) to compute its CRC  * @retval 32-bit CRC  */uint32_t CRC_CalcCRC(uint32_t Data){  CRC->DR = Data;    return (CRC->DR);}/**  * @brief  Computes the 32-bit CRC of a given buffer of data word(32-bit).  * @param  pBuffer: pointer to the buffer containing the data to be computed  * @param  BufferLength: length of the buffer to be computed					  * @retval 32-bit CRC  */uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength){  uint32_t index = 0;    for(index = 0; index < BufferLength; index++)  {    CRC->DR = pBuffer[index];  }  return (CRC->DR);}/**  * @brief  Returns the current CRC value.  * @param  None  * @retval 32-bit CRC  */uint32_t CRC_GetCRC(void){  return (CRC->DR);}/**  * @brief  Stores a 8-bit data in the Independent Data(ID) register.  * @param  IDValue: 8-bit value to be stored in the ID register 					  * @retval None  */void CRC_SetIDRegister(uint8_t IDValue){  CRC->IDR = IDValue;}/**  * @brief  Returns the 8-bit data stored in the Independent Data(ID) register  * @param  None  * @retval 8-bit value of the ID register   */uint8_t CRC_GetIDRegister(void){  return (CRC->IDR);}/**  * @}  *//**  * @}  *//**  * @}  *//************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 |