stm32f10x_crc.c
上传用户:yj_qqy
上传日期:2017-01-28
资源大小:2911k
文件大小:5k
源码类别:

uCOS

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
  2. * File Name          : stm32f10x_crc.c
  3. * Author             : MCD Application Team
  4. * Version            : V2.0.2
  5. * Date               : 07/11/2008
  6. * Description        : This file provides all the CRC firmware functions.
  7. ********************************************************************************
  8. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  9. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  10. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  11. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  12. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  13. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  14. *******************************************************************************/
  15. /* Includes ------------------------------------------------------------------*/
  16. #include "stm32f10x_crc.h"
  17. /* Private typedef -----------------------------------------------------------*/
  18. /* Private define ------------------------------------------------------------*/
  19. /* CR register bit mask */
  20. #define CR_RESET_Set    ((u32)0x00000001)
  21. /* Private macro -------------------------------------------------------------*/
  22. /* Private variables ---------------------------------------------------------*/
  23. /* Private function prototypes -----------------------------------------------*/
  24. /* Private functions ---------------------------------------------------------*/
  25. /*******************************************************************************
  26. * Function Name  : CRC_ResetDR
  27. * Description    : Resets the CRC Data register (DR).
  28. * Input          : None
  29. * Output         : None
  30. * Return         : None
  31. *******************************************************************************/
  32. void CRC_ResetDR(void)
  33. {
  34.   /* Reset CRC generator */
  35.   CRC->CR = CR_RESET_Set;
  36. }
  37. /*******************************************************************************
  38. * Function Name  : CRC_CalcCRC
  39. * Description    : Computes the 32-bit CRC of a given data word(32-bit).
  40. * Input          : - Data: data word(32-bit) to compute its CRC
  41. * Output         : None
  42. * Return         : 32-bit CRC
  43. *******************************************************************************/
  44. u32 CRC_CalcCRC(u32 Data)
  45. {
  46.   CRC->DR = Data;
  47.   
  48.   return (CRC->DR);
  49. }
  50. /*******************************************************************************
  51. * Function Name  : CRC_CalcBlockCRC
  52. * Description    : Computes the 32-bit CRC of a given buffer of data word(32-bit).
  53. * Input          : - pBuffer: pointer to the buffer containing the data to be 
  54. *                    computed
  55. *                  - BufferLength: length of the buffer to be computed
  56. * Output         : None
  57. * Return         : 32-bit CRC
  58. *******************************************************************************/
  59. u32 CRC_CalcBlockCRC(u32 pBuffer[], u32 BufferLength)
  60. {
  61.   u32 index = 0;
  62.   
  63.   for(index = 0; index < BufferLength; index++)
  64.   {
  65.     CRC->DR = pBuffer[index];
  66.   }
  67.   return (CRC->DR);
  68. }
  69. /*******************************************************************************
  70. * Function Name  : CRC_GetCRC
  71. * Description    : Returns the current CRC value.
  72. * Input          : None
  73. * Output         : None
  74. * Return         : 32-bit CRC
  75. *******************************************************************************/
  76. u32 CRC_GetCRC(void)
  77. {
  78.   return (CRC->DR);
  79. }
  80. /*******************************************************************************
  81. * Function Name  : CRC_SetIDRegister
  82. * Description    : Stores a 8-bit data in the Independent Data(ID) register.
  83. * Input          : - IDValue: 8-bit value to be stored in the ID register 
  84. * Output         : None
  85. * Return         : None
  86. *******************************************************************************/
  87. void CRC_SetIDRegister(u8 IDValue)
  88. {
  89.   CRC->IDR = IDValue;
  90. }
  91. /*******************************************************************************
  92. * Function Name  : CRC_GetIDRegister
  93. * Description    : Returns the 8-bit data stored in the Independent Data(ID) register
  94. * Input          : None
  95. * Output         : None
  96. * Return         : 8-bit value of the ID register 
  97. *******************************************************************************/
  98. u8 CRC_GetIDRegister(void)
  99. {
  100.   return (CRC->IDR);
  101. }
  102. /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/