一个不错的校验代码

2020-01-21 21:38发布

本帖最后由 ackyee 于 2014-11-29 19:45 编辑

一直都拿论坛的资料,这回自己也奉献一点:
一个不错的校验代码。 参考TI的CC2530官方例程得到。稍作了些调整
供大家学习交流之用

第一个函数是进行数组+校验字的 校验计算
第二个函数是根据数组计算校验字

该代码可以在串口传输,EEPROM存储等场合应用

PS 第一次在论坛传代码,好像[]在发布后会自动消失
下面的代码将数组[]特地加了空格处理,需要参考的朋友在编译过程中要自行调整


unsigned char CrcValid(unsigned char *pData, int length)
{
        int crc = 0;
        unsigned int i;
        for(i = 0; i < length; i++){
                crc ^= pData [ i ];
        }

        return (crc == 0);
}

unsigned char calcFCS(unsigned char *pBuf, unsigned char len)
{
  unsigned char rtrn = 0;

  while (len--)
  {
    rtrn ^= *pBuf++;
  }

  return rtrn;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
farfar
1楼-- · 2020-01-22 02:36
這是校驗和吧?爲什麽名字卻是CRC?
chenzheng123
2楼-- · 2020-01-22 06:21
校验和取反
dalarang
3楼-- · 2020-01-22 12:03
 精彩回答 2  元偷偷看……
chengshuai0528
4楼-- · 2020-01-22 17:36
不错,以后用得着
ijlc1314
5楼-- · 2020-01-22 20:38
这是异或,不是CRC吧

而且第一个函数的crc只有低8位有效,返回值不是0就是1。

ijlc1314
6楼-- · 2020-01-22 23:18
第一个函数,pData没有++

一周热门 更多>