串口的传输本质上就是二进制bit流,十六进制和ascii是一样的 只是传输后的显示方式不同而已
下面是十六进制转字符和字符串转十六进制的函数
关于串口编程看下这个帖子:
http://blog.csdn.net/hen_man/article/details/7248887char HexChar(char c)
{
if ((c >= '0') && (c <= '9'))
return c - 0x30;
else if ((c >= 'A') && (c <= 'F'))
return c - 'A' + 10;
else if ((c >= 'a') && (c <= 'f'))
return c - 'a' + 10;
else
return c;
}
int strHex(char *str, char *data)
{
int t, t1;
unsigned char l, h;
int rlen = 0, len = strlen(str);
int i;
for (i = 0; i < len;)
{
h = *(str + i); //.GetAt(i);
if ((0 < h) && (h < 128)) //鍒ゆ柇姝ゅ瓧绗︽槸鍚︿负姹夊瓧
{
i++;
if (i >= len)
break;
l = str
;
t = HexChar(h);
t1 = HexChar(l);
t = t * 16 + t1;
i++;
data[rlen] = (char)t;
rlen++;
}
else
{
data[rlen] = h; //
rlen++;
i++;
}
}
return rlen;
}