简单校验IC卡块的长度部分
代码:
uint8_t Get_IcSum(uint8_t *Str, uint8_t Len){
uint8_t SumTmp=0;
uint8_t i=0;
for(i=0; i<Len; i++)
SumTmp += *(Str + i);
SumTmp += 0X38;
return(SumTmp);
}
使用方法:
1、将最后的块赋值
Sys.Card_rBuffer[CARD_SUM2] = Get_IcSum(&Sys.Card_rBuffer[16], 15);
#define CARD_SUM2 31 //校验码
最后一位为校验码。
2、刷卡时,获取块级数据时,校验长度
if(Sys.Card_rBuffer[15+i * 16] != Get_IcSum(Sys.Card_rBuffer + i * 16, 15))
最后一位进行比较,如果相等,校验通过。