![]() |
hal accumulate 只是計算前不會重置DR寄存器而已
|
人人學會單片機 發表于 2022-6-12 11:38 我是32位的crc校驗,然后利用了庫函數,每次指針偏移64個字節 |
devcang 發表于 2022-6-12 11:36 內容是相同的 每次指針偏移64個字節 |
//******************************************************************* //函數名: CRC8,最開始需要把DMX_CRC_Data清0 //作用: 生成DMX數據校驗碼 //多項式: CRC8(X8+X5+X4+1),正序是0x31(1 00110001),反序是0x8C(10001100 1) //******************************************************************* void CRC8(u8 chChar) { u8 i; DMX_CRC_Data = DMX_CRC_Data^chChar; //新傳輸的值異或 for (i=0;i<8;i++) //8 bit { if (DMX_CRC_Data&0x01) //反序異或,判斷最低位是否為1 { DMX_CRC_Data=(DMX_CRC_Data>>1)^0x8C;//右移再異或 } else { DMX_CRC_Data>>=1; //位為0直接 往右移位 } } } |
校驗相同的內容 |