用vs2010编写comm的串口程序已经编译成功了,为什么不能接收
这个是接收的代码,其他代码都没有错,麻烦帮我看看是什么原因不能接收数据voidCScommDlg::OnMscomm1(){//TODO:在此添加命令处理程序代码VARI...
这个是接收的代码,其他代码都没有错,麻烦帮我看看是什么原因不能接收数据
void CScommDlg::OnMscomm1()
{
// TODO: 在此添加命令处理程序代码
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
byte rxdata[512];//设置byte数组
CString strtemp;
if(m_cComm.get_CommEvent()==2)//表示缓冲区里面有字符
{
variant_inp=m_cComm.get_Input();//读缓冲区消息
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(TEXT("%c"),bt);//将字符送入临时变量strtemp中
//strtemp.Format(_T("%c"),bt);
m_strrecvdata+=strtemp;//加入接收编辑框字符串
}
}
CString temp=(TEXT("\r\n"));//显示完后自动换行
m_strrecvdata+=temp;
UpdateData(FALSE);//更新编辑框类容
} 展开
void CScommDlg::OnMscomm1()
{
// TODO: 在此添加命令处理程序代码
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
byte rxdata[512];//设置byte数组
CString strtemp;
if(m_cComm.get_CommEvent()==2)//表示缓冲区里面有字符
{
variant_inp=m_cComm.get_Input();//读缓冲区消息
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(TEXT("%c"),bt);//将字符送入临时变量strtemp中
//strtemp.Format(_T("%c"),bt);
m_strrecvdata+=strtemp;//加入接收编辑框字符串
}
}
CString temp=(TEXT("\r\n"));//显示完后自动换行
m_strrecvdata+=temp;
UpdateData(FALSE);//更新编辑框类容
} 展开
2个回答
2011-10-09
展开全部
mscomm控件是早期的
现在都用serialport控件
建议去百度文库里搜搜
有很多资料的
现在都用serialport控件
建议去百度文库里搜搜
有很多资料的
更多追问追答
追问
但是我把serialport类加入到vs2010中的时候会报很多的错误,最多的就是char类型和LPCWSTR类型不兼容,请问,这个该怎么解决啊
追答
要你 把serialport类加入?
直接 用 这个 控件 就可以 吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询