//把四个字节的ascii码转换为2个字节的16进制数 uint16 ASCIITOHex16(uint8* OData,uint8 len) { uint8 i; uint8 tmpData; uint8 *O_buf = OData; uint16 tmp; for(i = 0; i < len; i++) { if ((O_buf >= '0') && (O_buf <= '9')) { tmpData = O_buf - '0'; } else if ((O_buf >= 'A') && (O_buf <= 'F')) /*A....F*/ { tmpData = O_buf - 0x37; } else if((O_buf >= 'a') && (O_buf <= 'f')) /*a....f */ { tmpData = O_buf - 0x57; } else { return 0; } O_buf = tmpData; } for(i = 0; i<len; i++) { tmp=(tmp<<4)+O_buf ; } return tmp; } |