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);
}
展开
 我来答
lgao622
2013-06-06 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6549
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
去掉 Receive_flag= 0
static unsigned int Receive_flag= 0;初始化就行
OnComm() 是接受到 一个数据也会被调用,可能导致你的 Receive_flag 一直是 0.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式