【Tool】如何在产品中使用校验和CheckSum

做产品尤其是 IoT 时代的产品,不可避免会涉及到数据跨板传输,数据的准确与稳定就显得尤为重要了。

1、计算校验和:

// 计算数据校验和
uint8 CheckSum8_Calculate( uint8* pBuffer, uint32 bufSize )
{
  uint8 cksum = 0;

  // 对数据区数据进行累加
  while ( bufSize > 0 )
  {
    cksum += *pBuffer;
    pBuffer++;;
    bufSize--;
  }

  // 将校验和取反加 1 后返回
  return ((~cksum)+1);
}

2、检查数据校验

// 验证校验数据
uint8 CheckSum8_Verify( uint8* pData, uint32 dataSize, uint8 ckSum )
{
	
  uint8 pCkSum = ckSum;

  for( uint8 i = 0; i < dataSize; i++ )
  {
    pCkSum += *pData;
    pData++;
  }
  
  // 检测校验数据成功
  if ( pCkSum == 0 )
  {
	return 0;
  }
  else
  {
	return -1;
  }
}

 

你可能感兴趣的:(Base基础原理和工具)