在编写串口程序的时候 如何提取出读入数据的最后一个字节 作为标志位啊
void CSCommTestDlg::OnOnCommMscomm1()
{
unsigned char chData1;
char ch;
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
Sleep(1500);
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k);
ch=(char)bt;
strtemp.Format("%02X ",bt);
//将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
m_strEditRXData+=strtemp;
}
if(ch==0x0A)(此时希望能够发送第二帧,请问这样定义有什么错吗?)
Sleep(1000);
unsigned char chData1[]={0x06,0xB2,0xB4,0x8D,0x0A};
CByteArray cinData;
cinData.RemoveAll();
for(int j=0;j<5;j++)
cinData.Add(chData1[j]);
COleVariant bar(cinData);
m_ctrlComm.SetOutput(bar);
m_ctrlComm.SetSettings("4800,n,8,1");
}
UpdateData(FALSE);//加入接收编辑框对应字符串
}
急:编写串口程序遇到困难(附代码)