Example #1
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
    GD_EVAL_LEDInit(LED1);

    vab1 = (uint32_t)0xabcd1234;
    RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_CRC, ENABLE);
    
    CRC_DeInit();
    read32_1 = CRC_CalcSingleData(vab1);
    
    /* input reverse */
    CRC_DeInit();
    CRC_ReverseInputData_Config(CRC_REVERSE_INPUT_DATA_BYTE);
    read32_2 = CRC_CalcSingleData(vab1);
    
    CRC_DeInit();
    CRC_ReverseInputData_Config(CRC_REVERSE_INPUT_DATA_HALFWORD);    
    read32_3 = CRC_CalcSingleData(vab1);

    CRC_DeInit();
    CRC_ReverseInputData_Config(CRC_REVERSE_INPUT_DATA_WORD);        
    read32_4 = CRC_CalcSingleData(vab1);
    
    /* output reverse */
    CRC_DeInit();
    CRC_ReverseOutputData_Enable(ENABLE);
    read32_5 = CRC_CalcSingleData(vab1);
    
    CRC_DeInit();
    CRC_ReverseInputData_Config(CRC_REVERSE_INPUT_DATA_BYTE);
    CRC_ReverseOutputData_Enable(ENABLE);
    read32_6 = CRC_CalcSingleData(vab1);
    
    CRC_DeInit();
    CRC_ReverseInputData_Config(CRC_REVERSE_INPUT_DATA_HALFWORD);
    CRC_ReverseOutputData_Enable(ENABLE);
    read32_7 = CRC_CalcSingleData(vab1);
    
    CRC_DeInit();
    CRC_ReverseInputData_Config(CRC_REVERSE_INPUT_DATA_WORD);
    CRC_ReverseOutputData_Enable(ENABLE);
    read32_8 = CRC_CalcSingleData(vab1);
    
    /* check the caculation result */
    if((read32_1 == 0xf7018a40)&&(read32_2 == 0x49fc6721)&&(read32_3 == 0x606444e3)&&(read32_4 == 0x16d70081)
      &&(read32_5 == 0x025180ef)&&(read32_6 == 0x84e63f92)&&(read32_7 == 0xc7222606)&&(read32_8 == 0x8100eb68))
    {
        success_flag = 0x1;
        GD_EVAL_LEDOn(LED1);
    }

    while (1)
    {
    }
}
Example #2
0
/**
  * @brief  Configure CRC peripheral to use 8-bit polynomials
  * @param  poly: the CRC polynomial
  * @retval None
  */
static void CRC_Config(uint8_t poly)
{
  /* Enable CRC AHB clock interface */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);

  /* DeInit CRC peripheral */
  CRC_DeInit();
  
  /* Init the INIT register */
  CRC_SetInitRegister(0);
  
  /* Select 8-bit polynomial size */
  CRC_PolynomialSizeSelect(CRC_PolSize_8);
  
  /* Set the polynomial coefficients */
  CRC_SetPolynomial(poly);
}