用串口调试助手时发现此工具可以发送 16进制的数据串
分析后,粗略实现如下:
// eg: unsigned char src[] = "02042A2A50575203"
// 16进制的串
// 每1个字节可以存放2个16进制位
// eg:16进制的 0x01 在内存中为(little-endian) 0000,0001 = (0x0 << 4 | 0x1)
// 0x2a 0010,1010 = (0x2 << 4 | 0xa)
//
#define HEX_STR_LEN 17
int hextoi(unsigned char * asic)
{
if(*asic >= 48 && *asic <= 57)
{
*asic -= 48;
}
else if(*asic >= 65 && *asic <= 70)
{
*asic = *asic - 65 + 10;
}
else if(*asic >= 97 && *asic <= 102)
{
*asic = *asic - 97 + 10;
}
else
{
return -1;
}
return 0;
}
int hex2numeric(void * src, unsigned int len, unsigned char * serialCmd)
{
if(src == NULL || serialCmd == NULL)
{
return -1;
}