MSComm控件串口事件形式OnComm函数接收数据老是出错?

用的是一般教科书上的源代码:voidCMSCommTestDlg::OnComm(){//TODO:Addyourcontrolnotificationhandlerco... 用的是一般教科书上的源代码:
void CMSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE型数组
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收数据事件
{
variant_inp=m_ctrlComm.GetInput(); //读接收缓冲区
safearray_inp=variant_inp; //VARIANT型转换为ColeSafeArray型
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
//strtemp.Format("%02x ",bt); //将字符的十六进制码存入strtemp
m_strEditRXData+=strtemp; //加入接收编辑框对应字符串变量中
}
}
UpdateData(FALSE); //更新编辑框内容,即在接收显示框中显示接收数据
}
目的是读取锁相放大器里面的数据,接收的数据老是到最后一位就出错
展开
 我来答
匿名用户
2013-11-08
展开全部
类似

Visual C++_Turbo C串口通信编程实践

里的代码
更多追问追答
追问
不同的书里面的代码其实都差不多,错误的原因是什么呢?我用的usb转串口
追答
usb转串口
情况复杂

说不清

可能的话,还是用 带串口的 电脑
cjj796
2013-11-08 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3463万
展开全部
你好!!
你说的报错,是程序出现错误,还是数据接收的错误?
追问
程序错误,我点一下确定,程序就直接关闭了
追答
你的程序只有一段,你还是先注释掉一部分代码,采用逐渐加入代码的方式调试;
最后看看是那几句代码有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式