VC中使用MSComm控件进行串口编程,接收的数据分别显示在不同编辑框中,怎么实现啊!?急啊!!!!
本意是接收的第一个数据在m_strL编辑框中显示,第二个数据在m_strF中显示,第三个数在m_strR中显示,然后再在循环的显示。代码如下,但运行后接收的数据总在第一个...
本意是接收的第一个数据在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);
} 展开
代码如下,但运行后接收的数据总在第一个编辑框中显示,不会跳转到下个编辑框,为什么啊?求大侠给的相似的代码,或者帮我改下。邮箱: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);
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询