[求助] 单片机串口通信

雨夜秋寒寒   2013-1-17 15:55 楼主
void CTemDisplayDlg::OnOnCommMscomm1()
{
        // TODO: Add your control notification handler code here


       
        m_strRXData="";                           //每次进入串口函数将编辑框内容清空
        VARIANT variant_inp;                      //可以用 Variant 数据类型来替换任何数据类型,数值数据可以是任何整型或实型数
        COleSafeArray safearray_inp;              //定义具有任意类型的变量safearray_inp
        LONG len,k;                               //定义长整形变量
        BYTE rxdata[2048];                        //设置BYTE数组
        CString strtemp;                          //定义字符型变量

        if(m_Comm.GetCommEvent()==2)              //如果接收缓冲区内有字符
        {

                variant_inp=m_Comm.GetInput();        //读缓冲区
            safearray_inp=variant_inp;            //将VARIANT型变量转换为COleSafeArray型
         len=safearray_inp.GetOneDimSize();    //得到有效数据长度                                          //一到这里就出错
                for(k=0;k                 safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组                              

                for(k=0;k                 {
                        BYTE bt=*(char*)(rxdata+k);                //字符型
                        strtemp.Format("%c",bt);                   //将字符型送入临时变量strtemp中存放
                        m_strRXData+=strtemp;                      //加入接收编辑框对应字符串
                }
                m_strRXData+="\r\n";
        }

                 UpdateData(FALSE);                 //更新编辑框内容

       
}
我是菜鸟,刚学用VisualC++编串口通信的上位机程序,想显示温度,可一到 len=safearray_inp.GetOneDimSize(); 就出错,哪位大神能帮忙看看!

回复评论 (3)

串口跟什么通讯呢?
点赞  2013-1-17 21:05
跟单片机,PC机发,单片机好使,单片机发PC机显示不出来,大神有何高见啊?
点赞  2013-1-18 09:34
数年前我先学习的MSComm串口通信,但最终放弃了,决定使用API。
若使用API,可加我为好友,一起探讨。
点赞  2013-1-18 20:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复