VC中使用MSComm控件进行串口编程,接收的数据分别显示在不同编辑框中,怎么实现啊!?急啊!!!!

本意是接收的第一个数据在m_strL编辑框中显示,第二个数据在 m_strF 中显示,第三个数在m_strR 中显示,然后再在循环的显示。
代码如下,但运行后接收的数据总在第一个编辑框中显示,不会跳转到下个编辑框,为什么啊?求大侠给的相似的代码,或者帮我改下。邮箱:wguan2012@163.com
void CSCommTestDlg::OnComm()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
static unsigned int Receive_flag;
Receive_flag=0;
if(m_ctrlComm.GetCommEvent()==2)
{
variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
switch(Receive_flag)
{
case 0: m_strL+=strtemp; break;
case 1: m_strF +=strtemp;break;
case 2: m_strR +=strtemp; break;
}
Receive_flag++;
if( 2 ==Receive_flag)
{
Receive_flag=0;
}
}
}
UpdateData(FALSE);
}

去掉 Receive_flag= 0
static unsigned int Receive_flag= 0;初始化就行
OnComm() 是接受到 一个数据也会被调用,可能导致你的 Receive_flag 一直是 0.
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答