vc MFC串口通信问题,请问大家有什么好办法
我从串口接收到数据,CString str2;比如str2(调试运行中是这样显示的)接收到的是(全为16进制的)68 69 EB 90 EB 90 06 C2 02 00 01 8A DC 7E ,现在我要提取其中的“C2”这个字节,并将这个字节保存为unsigned char类型的,怎么做呢?有什么好方法呢???
大侠支招把!!!!!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
假设收到的数据放在buff里
定义:
unsigned char *p = (unsigned char*)buff;
unsinged char ch = p[7]; // c2是第8个字符
[解决办法]
最好的办法还是应该定义个数组来接受这些数据,然后也好找些;
按照你的思路,如果你的接受数据里只有一个“C2”的话倒是好办:
先判断是否有C2,有的话就将其转换为UCHAR型。
UCHAR Data;
if ( str2.Find("C2") != -1 )//表示找到
{
//将字符串转换为UCHAR型数据
Data = ((int)ConvertHexChar('C'))*16 + ((int)ConvertHexChar('2'));
}
char ConvertHexChar(char ch)
{
if((ch>='0')&&(ch<='9'))
return ch-0x30;
else if((ch>='A')&&(ch<='F'))
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))
return ch-'a'+10;
else
return (-1);
}