int CSCommTestDlg::String2Hex(CString str, CByteArray &senddata){int hexdata,lowhexdata;int hexdatalen=0;int len=str.GetLength();senddata.SetSize(len/2);for(int i=0;i<len;){char lstr,hstr=str[i];if(hstr==' '){i++;continue;}i++;if(i>=len)break;lstr=str[i];hexdata=ConvertHexChar(hstr);//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1lowhexdata=ConvertHexChar(lstr);if((hexdata==16)||(lowhexdata==16))break;else hexdata=hexdata*16+lowhexdata;i++;senddata[hexdatalen]=(char)hexdata;hexdatalen++;}senddata.SetSize(hexdatalen);return hexdatalen;} //这是一个将字符转换为相应的十六进制值的函数//好多C语言书上都可以找到//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1char CSCommTestDlg::ConvertHexChar(char ch) {if((ch>='0')&&(ch<='9')) //0-9return ch-0x30;else if((ch>='A')&&(ch<='F'))// 大写A-Freturn ch-'A'+10;else if((ch>='a')&&(ch<='f'))// 小写a-freturn ch-'a'+10;else return (-1);}标志一共有15个,加上三个控制标志的标志,一共是18个。这个是VC串口转换的由字符到HEXo 他说的是C语言,我说的是C++3q ````````有搞好的源代码,串行口相关的,有VB,有VC的还有二进制输出基本上你们得用二进制输出那个得设置ios::binary我看看先还得使用read()和write()函数写入数据结构或者字符串或者数值。ios::binary必须与read()和write()函数搭配使用。

评论