M471M/R1/S BSP V3.01.000
The Board Support Package for M4521
crc.c
Go to the documentation of this file.
1/**************************************************************************/
8#include "NuMicro.h"
9
10
47void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
48{
49 CRC->SEED = u32Seed;
50 CRC->CTL = u32Mode | u32Attribute | u32DataLen | CRC_CTL_CRCEN_Msk;
51
52 /* Setting CRCRST bit will reload the initial seed value(CRC_SEED register) to CRC controller */
53 CRC->CTL |= CRC_CTL_CRCRST_Msk;
54}
55
65uint32_t CRC_GetChecksum(void)
66{
67 switch(CRC->CTL & CRC_CTL_CRCMODE_Msk)
68 {
69 case CRC_CCITT:
70 case CRC_16:
71 return (CRC->CHECKSUM & 0xFFFF);
72
73 case CRC_32:
74 return (CRC->CHECKSUM);
75
76 case CRC_8:
77 return (CRC->CHECKSUM & 0xFF);
78
79 default:
80 return 0;
81 }
82}
83 /* end of group CRC_EXPORTED_FUNCTIONS */
85 /* end of group CRC_Driver */
87 /* end of group Standard_Driver */
89
#define CRC_CTL_CRCRST_Msk
Definition: M471M_R1_S.h:1826
#define CRC_CTL_CRCEN_Msk
Definition: M471M_R1_S.h:1823
#define CRC_CTL_CRCMODE_Msk
Definition: M471M_R1_S.h:1844
NuMicro peripheral access layer header file.
#define CRC_CCITT
Definition: crc.h:31
#define CRC_16
Definition: crc.h:33
#define CRC_8
Definition: crc.h:32
#define CRC_32
Definition: crc.h:34
void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
CRC Open.
Definition: crc.c:47
uint32_t CRC_GetChecksum(void)
Get CRC Checksum.
Definition: crc.c:65
#define CRC
Definition: M471M_R1_S.h:13830