完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
算法(c# 语言)如下:(这个是论文上的范例)
public virtual byte GetCRCByte(byte[] data) { int crc = 0x0; (初始值为0) foreach (byte bt in data) { crc = crc ^ bt; for (int j = 1; j <= 8; j++) { if ((crc & 0x80) == 0x80) crc = (crc << 1) ^ 0xE5; 多项式值为E5,被校验值左移 else crc = crc << 1; } } return (byte)crc; } 校验示例: 被校验字节串:3165430C00408F01,CRC 值为 07H。 现在我想用C语言编写:如下,结果CRC 值为C2H。求高手指导! unsigned char GetCRC(unsigned char *ptr, unsigned char len) { unsigned char crc=0x00; unsigned char i; while(len--) { crc=crc^*ptr++; for(i=0;i<8;i++) { if(crc&0x80==0x80) //if(crc & 0x01) { crc=(crc<<1)^0xE5; } else { crc=crc<<1; } } } return crc; } |
|
相关推荐
3个回答
|
|
顶,有没有高手指导啊
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2162 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1997 浏览 3 评论
4593 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2140 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2659 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 17:55 , Processed in 0.499709 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号