用单片机实现三菱变频器通讯, 通过三菱专用协议通讯,如何用c语言实现协议中的和校验,请高人指点?

用单片机实现三菱变频器通讯, 通过三菱专用协议通讯,如何用c语言实现协议中的和校验,请高人指点?

#include <stdio.h>

/* 校验和函数 */
int checksum(const char *arr, int arrsize)
{
int i = 0, sum = 0;
for (; i < arrsize; i ++)
sum += (unsigned char)arr[i];
if (sum > 0xff)
{
sum = ~sum;
sum += 1;
}
sum &= 0xff;
return sum;
}

int main(void)
{
char str[] = "hello, world\n";
printf("0x%x\n", checksum(str, sizeof(str)));
return 0;
}

追问

谢谢大侠。很好的完成了总和的值。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答