u8 Checksum (u8* Buffer, u8 DataNumber)
{
u8 i=0;
u16 temp1=0;
u16 temp2=0;
for(i=0;i<DataNumber;i++)
{
temp1 = temp1+ *Buffer;
temp2 = temp1>>8;
if( temp2> 0 )
{
temp1++;
temp1&= ~0x0100;
}
Buffer++;
}
return (u8)(~temp1);
}
temp1++ 和 return (u8)(~temp1) 是否和补码有关,这种累加和校验叫什么? |