首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

vc MFC串口通信有关问题,请教大家有什么好办法

2012-04-08 
vc MFC串口通信问题,请问大家有什么好办法我从串口接收到数据,CString str2;比如str2(调试运行中是这样显

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);
 }

热点排行