// str="f1aaBBCc0978fa" bits[0]=F1,bits[1]=AA……………………
int ICACHE_FLASH_ATTR str_to_hex(char *str,char *bits) {
int i,n = 0;for(i = 0; str[i]; i += 2) {
if(str[i] >= 'A' && str[i] <= 'F')
bits[n] = str[i] - 'A' + 10;
else if(str[i]>='0'&&str[i]<='9')
bits[n] = str[i] - '0';
else if(str[i]>='a'&&str[i]<='f')
bits[n] = str[i] - 'a' + 10;
else
return 0;
if(str[i+1] >= 'A' && str[i+1] <= 'F')
bits[n] = bits[n]*16+(str[i+1] - 'A') + 10;
else if(str[i+1]>='0'&&str[i+1]<='9')
bits[n] = bits[n]*16+(str[i+1] - '0');
else if(str[i+1]>='a'&&str[i+1]<='f')
bits[n] = bits[n]*16+(str[i+1] - 'a') + 10;
else
return 0;
kk_debug(DEBUG_INFO,"bits[%d]= %02X\n",n,bits[n]);
n++;
}
return n;
}
// 最初版本
int str_to_hex(char s[],char bits[]) {
int i,n = 0;
for(i = 0; s[i]; i += 2) {
if(s[i] >= 'A' && s[i] <= 'F')
bits[n] = s[i] - 'A' + 10;
else bits[n] = s[i] - '0';
if(s[i + 1] >= 'A' && s[i + 1] <= 'F')
bits[n] = (bits[n] << 4) | (s[i + 1] - 'A' + 10);
else bits[n] = (bits[n] << 4) | (s[i + 1] - '0');
++n;
}
return n;
}