按字节异或的问题
有一个字符串,头是‘$',尾是这串的校验和。校验和是从$起到校验和前一字节按字节异或的结果。 比如:(16进制的)24 49 43 4A 43 00 0C 00 00 00 00 2B(2B是校验和)我写了个函数是用来接收别人按这个格式发来的一串字符串。
if (XXX_start == 1) //标志位为1,开始接收
{
rev_buf3[num3++] = ch; //字符存到数组中
if((ch != 0x24) && (checknum == ch))
{
USART_ITConfig(USART3,USART_IT_RXNE,DISABLE); //关闭USART3接收中断
rev_buf3[num3] = '\0';
XXX_start = 0;
XXX_stop = 1;
num3 = 0;
checknum = 0x00;
}
} 我想问下,我用收到的每个字符按字节异或来和新收到的字符作比较,判断是否接受完成,是否可行? 会不会出现提前求到校验和而终止本不该结束的字符串。