博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用控件(CMSComm)串口调试问题的解决
阅读量:2377 次
发布时间:2019-05-10

本文共 833 字,大约阅读时间需要 2 分钟。

在编一个串口通信程序,因为刚上手,所以是按着龚建伟书的第一章改写的。 

在处理接收数据的函数中 
void CSerTestDlg::OnComm() 
VARIANT variant_inp; 
COleSafeArray safearray_inp; 
LONG len,k; 
BYTE rxdata[2048]; 
CString strtemp; 
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++) 
char bt=*(char*)(rxdata+k); 
strtemp.Format("%c",bt); 
m_strEditRXData+=strtemp; 
UpdateData(FALSE); 

我用debug查看,第一步的结果是对的,数据放入到我定义的缓冲区variant_inp中 

第二步弹出错误框,但忽略后safearray_inp也接收到数据 
第三步又弹出错误框,但忽略后得到的有效数据长度len是一个负数。 
结果后面就一直错下去了。 

 

后来我网上费了好大劲终于解决弹出错误框问题:是由于少调用了m_ctrComn.SetInputMode(1);

 

好,可是问题又出现,发现只能给串口发送数据,不能接受数据,晕死!!

又是在网上查找半天,无果!!!

 

但是看到一个人写的关于串口通信的问:双击消息OnComm,将弹出的对话框中将函数名改为OnComm。

于是联想到我的函数,原来函数名不是OnComm,于是赶紧改。

 

最后问题不在出现,结果正常!

 

转载地址:http://jqlxb.baihongyu.com/

你可能感兴趣的文章
赵先德:不提倡每个人都分析大数据
查看>>
大数据潮起 三领域争抢蛋糕
查看>>
百度助力中小企搜赢大数据
查看>>
大数据风云再起 二线龙头接棒大涨
查看>>
大数据核心就是要预测未来趋势
查看>>
风投掘金可穿戴设备:大数据才是背后真金
查看>>
搞互联网金融的,少点大数据忽悠吧!
查看>>
检测食品质量,看大数据分析
查看>>
地产大数据
查看>>
用大数据卖房
查看>>
2014 酒业营销升级在即 大数据营销
查看>>
停车费上涨需要公开“大数据”
查看>>
民营银行试点四大模式各有侧重 大数据独领风骚
查看>>
深交所跨入大数据监管
查看>>
房地产业探索新模式 大数据买房利好九股
查看>>
大数据和互联网思维或能有效缓解交通拥堵
查看>>
助力大数据开发 IBM收购DBaaS提供商Cloudant
查看>>
大数据引爆移动支付革命
查看>>
2013年江苏通信行业“大数据”回顾
查看>>
大数据“由浅到深”来到身边
查看>>