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 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突