1、在用C語言編寫CRC校驗碼的實現(xiàn)程序時我們應該注意,生成多項式 對應的十六進制數(shù)為0x18005,由于CRC寄存器左移過程中,移出的最高位為1時與 相異或,所以與16bit的CRC寄存器對應的生成多項式的十六進制數(shù)可用0x8005表示。
10年積累的網(wǎng)站設計制作、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設流程,更有東洲免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
2、你就是想要CRC8-CCITT的代碼,這個到處都是。http:// 我一直有CRC16,沒試過這個,但應該差不多。
3、你要分析生成多項式!你用的這個別人的程序是的生成多項式是 CRC-ITU,而可能你用的那個協(xié)議的是CRC16。生成多項式不同,得出來的校驗碼也會不同的。不能亂套的。
4、e.數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復步驟b (數(shù)據(jù)包括CRC的兩個字節(jié))。f.寄存器組的值是否等于“Magic Value”(0xF0B8),若相等則通過,否則失敗。
5、樓主的程序,把變量,都設定在 xdata 空間。
1、在用C語言編寫CRC校驗碼的實現(xiàn)程序時我們應該注意,生成多項式 對應的十六進制數(shù)為0x18005,由于CRC寄存器左移過程中,移出的最高位為1時與 相異或,所以與16bit的CRC寄存器對應的生成多項式的十六進制數(shù)可用0x8005表示。
2、按位計算CRC采用CRC-CCITT多項式,多項式為0x11021,C語言編程時,參與計算為0x1021。
3、樓主程序中調(diào)用函數(shù)cal_crc()的方式不正確。函數(shù)cal_crc()用于計算輸入串的校驗碼,因此函數(shù)輸入?yún)?shù)包含輸入串及該串的長度。
1、按位計算CRC采用CRC-CCITT多項式,多項式為0x11021,C語言編程時,參與計算為0x1021。
2、while(len--!=0)這句的len的值循環(huán)一次就減少1,先執(zhí)行l(wèi)en!=0,再執(zhí)行l(wèi)en--。當len為0時退出循環(huán)。for(i=0x80;i!=0;i/=2)0x80是十六進制數(shù),也即128 當i!=0時,執(zhí)行循環(huán)體,然后i=i/2,即i值減半。
3、你就是想要CRC8-CCITT的代碼,這個到處都是。http:// 我一直有CRC16,沒試過這個,但應該差不多。
4、樓主程序中調(diào)用函數(shù)cal_crc()的方式不正確。函數(shù)cal_crc()用于計算輸入串的校驗碼,因此函數(shù)輸入?yún)?shù)包含輸入串及該串的長度。