rcu_periph_clock_enable(RCU_CRC); /* Compute the CRC of "DataBuffer" */ CRCValue=crc_block_data_calculate((uint32_t*)DataBuffer,BUFFER_SIZE); printf("\r\n32-bit CRC check code : 0x%X\n",CRCValue); while(1) { delay_ms(1000); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10....
*/intmain(void){//systick initsysTick_init();//usart init 115200 8-N-1com_init(COM1,115200,0,1);printf("CRC Test \\n");/* Enable CRC clock */rcu_periph_clock_enable(RCU_CRC);/* Compute the CRC of "DataBuffer" */CRCValue =crc_block_data_calculate((uint32_t*)DataBuffer, ...
crc_data_register_reset(); crc32 = crc_single_data_calculate(single_data, INPUT_FORMAT_WORD); crc_data_register_reset(); crc32 = crc_block_data_calculate(multiple_data, 8, INPUT_FORMAT_WORD); crc_data_register_reset(); while(1) { /* insert 500 ms delay */ delay_1ms(500); } } ...
initial_value)# 输入数据块data_block='hello world'# 计算并输出CRC值crc_result=crc_calculator.calculate_crc(data_block)print(f'The CRC value for data block "{data_block}" is:{crc_result}')
crc32 = crc_block_data_calculate(multiple_data, 8, INPUT_FORMAT_WORD); crc_data_register_reset(); while(1) { /* insert 500 ms delay */ delay_1ms(500); } } 结果展示 如下图为GD32F310执行的截图,实例代码SingleWord的CRC32=0xDF8A8A2B。
#define crc_block_data_calculate CRC_CalcBlockCRC #define crc_free_data_register_write CRC_SetIDRegister #define crc_free_data_register_read CRC_GetIDRegister #endif void crc_init(void); #endif /* __IO_CRC_H__ */ CRC测试代码:
uint32_t crc_block_calculate(uint32_t *pbuffer, uint32_t length);/* 读取当前 CRC 数据寄存器 ...
uint32_t crc16_block_calculate(uint16_t *pbuffer, uint32_t length){ uint32_t index = 0;fo...
#include "crc.h" void CRC_Init(void); //初始化CRC模块 void CRC_Reset(void); //复位CRC u32 CRC_CalculateCRC(u32 data); //计算32BIT CRC u32 CRC_CalculateBlockCRC(u8 pBuffer[], u32 BufferLength);//计算缓冲区中的数据的CRC #endif...
本文所提供的程序库中,函数crchware是一般的16位CRC的算法;mk-crctbl用以在内存中建立一个CRC数值表;crcupdate用以查表并更新CRC累加器的值;crcrevhware和crcrevupdate是反序算法的两个函数;BuildCRCTable、CalculateBlockCRC32和UpdateCharac terCRC32用于CRC32的计算。/* CRC.C——CRC程序库 */...