27,511
社区成员




int iCurrent;//电流值
int RxLength;//数据包长度
char RxBuf[20];//数据包
void crc16(unsigned char *buf,unsigned char len, unsigned char CrcResult[2]);
if(RxLength!=7)//长度判断
return;
crc16(RxBuf,RxLength-2,crc);//校验判断
if(crc[0]!=RxBuf[5] || crc[1]!=RxBuf[6])
return;
if(RxBuf[0]!=0x02 || RxBuf[1]!=0x03 || RxBuf[2]!=0x02)//地址、命令及长度判断
return;
iCurrent =Buf[0];iInstantFlow<<=8;
iCurrent+=Buf[1];//电流值数据获取
int current;
if(sbuf[0]==2 && sbuf[1]==3 && CRC校验正确)
{
current=sbuf[3];
current<<=8;
current|=sbuf[4];
}
你想这样?