CRC設定上開這兩個 CRC_WDATA_RVS CRC_CHECKSUM_RVS 就可以跑出0x37DD的數值了 程式都幫你寫好了,你試看看吧 int main() { const uint8_t acCRCSrcPattern[] = {0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38}; uint32_t i,u32TargetChecksum = 0x37DD, u32CalChecksum = 0; /* Unlock protected registers */ SYS_UnlockReg(); SYS_Init(); /* Lock protected registers */ SYS_LockReg(); /* Init UART0 to 115200-8n1 for print message */ UART_Open(UART0, 115200); Bsp_Crc_Controller_Reset(); Bsp_Crc_Module_Enable(); CRC_Open(CRC_16, CRC_WDATA_RVS|CRC_CHECKSUM_RVS, 0xFFFF, CRC_CPU_WDATA_8); for(i = 0; i < sizeof(acCRCSrcPattern); i++) { CRC_WRITE_DATA((acCRCSrcPattern[i] & 0xFF)); } /* Get CRC-8 checksum value */ u32CalChecksum = CRC_GetChecksum(); printf("CRC checksum is 0x%X ... %s.\n", u32CalChecksum, (u32CalChecksum == u32TargetChecksum) ? "PASS" : "FAIL"); while(1); } |