我用MSComm控件以2进制的方式发送数据,代码如下:一、发送到单片机的串口得到的不是61("a"的ASCII码的十六进制数)而是E1,最高为被置为1
CByteArray array; //用于二进制传输的字节数组    
array.RemoveAll();// frees all memory used for pointer storage
array.SetSize(1);//allocating memory 
char TxData[1];//字符数组用于将汉字转换成机器区位码数据数组
TxData[0]='a';
array.SetAt(0, TxData[0]);
m_Com.SetOutput(COleVariant(array));
二、用如下代码所的结果和上面的结果一样
CString string1="97";
int b=atoi(string1);
string1.Format("%x",b);
CByteArray hexdata;
int len=String2Hex(string1,hexdata);
m_Com.SetOutput(COleVariant(hexdata));
三、但是用下面的方法就可以得到正确的值,得到05
BYTE b;
b=0x05;
array.SetAt(0, b);
      m_Com.SetOutput(COleVariant(array));
不知道哪位高手能指点一下,为什么方法一和二不行,怎样该呢?