qq_14867859 2015-03-09 09:44 采纳率: 0%
浏览 1620

MFC 程序,传感器里的数据无法读取到文本框里

写了一个MFC程序,想把传感器的数据通过MSComm 读取出来。现在的问题是程序不出错,但是数据显示不出来。代码如下:
void CEmapDlg::OnCommMscomm1()
{
// TODO: 在此处添加消息处理程序代码
//printf("system is running here");
static unsigned int cnt = 0;
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
unsigned int data[1024]={0};
byte rxdata[1024];//set byte array
CString strtemp;

if(m_mscomm.get_CommEvent()==2)//value is 2 when there is byte data in receive buffer
{
    cnt++;
    variant_inp = m_mscomm.get_Input();//read message from buffer
    safearray_inp = variant_inp; //data change format
    len = safearray_inp.GetOneDimSize();//get the valid length of data
    for(k=0;k<len;k++)
    {
        safearray_inp.GetElement(&k,rxdata+k);//data format change to byte array
    }

    for(k=0;k<len;k++)//change format from array to CString
    {
    strtemp.Format(_T("%x"),*(rxdata+k));
    m_EditReceive+=strtemp;
    CString temp=_T("\r\n");
    m_EditReceive+=temp;
    }
}
UpdateData(FALSE);
}
调试截图![图片说明](https://img-ask.csdn.net/upload/201503/09/1425894173_459767.jpg)
  • 写回答

2条回答 默认 最新

  • 91program 博客专家认证 2015-03-09 09:47
    关注

    建议你先使用串口调试助手之类的工具,看看你的传感器是否有数据返回?
    如果有你想要的数据返回,再来分析你提供的代码。

    从你提供的代码来看,不是好的串口处理方式。建议你在网上看看使用 MSComm 的示例代码吧。

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题