mscomm控件 接收数据问题 我用mscomm控件写的串口通信 能够发数据但是 当我接收数据是毫无响应 我添加的 oncommMscomm1()函数 在接收过程是无响应 望大家帮忙 看是哪里 的原因还有一个问题 就是接收数据 和 发送数据 是不是应该分别用不同的mscomm控件呢(也就是得接收用一个mscomm控件 发送还要用一个mscomm控件呢)谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就用一个控件,不在oncommMscomm1事件里,直接接收看一看 MSComm控件一般用事件驱动方式从串口接收数据,也就是消息处理,当串口有事件发生时,程序调用消息函数来处理数据。打开 ClassWizard→Message Maps,在ClassName中选择类CcomDlg,再在Object IDs中选择IDC_MSCOMMl,然后在Message中双击消息OnComm(或单击“Add Function”),在弹出的对话框中将函数名改为OnComm,单击“OK”。就加入了串口事件的消息处理函数。在coreDlg.cpp文件中编写 OnComm()中的代码,主要任务是从串口接收数据并显示在接收编辑框中。 void CComDlg:OnComm() {VARIANT varlant_inp; ColeSafeArray safearray_inp; LONG len,k; BYTE rxdata[2048]: CStrlng strtemp; if(m_ctrlComm.GetCommEvent()==2) { varlant_inp=m ctrlComm.GetInput(): safearray_in=variant_inp; len=safeary_inp.GetOneDimSize(): for(k=0;k<len;k++) safearray_inp.GetElement(&k,rxdata+k): for(k=O;k<len;k++) { BYTE bl=*(char*)(rxdata+k): strtemp.Format(“%c”,bt); m_strEditR.XData+=strtemp; } } UpdateData(FALSE); } 还是不行 我对控件mscomm添加oncommscomm()函数 可是接收数据时毫无响应还是不行啊现在时函数体比较容易写了,但是根本无法触发接收数据的函数啊 void CComDlg:OnComm() 根本不触发 大家帮我出出招啊vs2005编译器 mscomm 控件 为什么只能发送数据 不能接收数据呢 要接收数据 需要添加什么 具体函数内容 我已大概知道 就是添加什么事件接收呢 比如 oncommscomm()函数是接收数据的么 但是我的为什么不响应这个函数啊谢谢大家啦 一般来说,使用这个控件时,先设定好阀值,比如设置阀值为1个字节,那么当接收到一个字节的数据时,OnComm 事件就会触发,然后你把代码写在这个事件中,取出这1个字节,放到你自己定义的数组中,然后继续收第2个字节,直到收满一帧数据。通讯都需要一个协议,这个协议由你自己来定,结合你的协议来做吧。 原来是要加上这条代码m_mscom.SetRThreshold(1); 对话框上显示数据 求助:动态库的问题! 在c++中怎么通过一个按钮打开另一个窗体 急!!一个CFileDialog派生类的问题 请问在代码中,在宏之间的语句如何执行啊? 用函数InternatFindNextFile来枚举FTP服务器上的文件是为什么总是找到第一个后就找不到第二个了呢? 有没有带选择框的ListBox,就象在VB中将Style属性设置为1-CheckBox时候的那种。 和阿飞一起来写csdn助手 vc8 ddx_text() 双机调试,usb连接,这种usb线是什么线? 异步传输时引起传输中断的各种情况? 指针和内存使用
void CComDlg:OnComm()
{VARIANT varlant_inp;
ColeSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]:
CStrlng strtemp;
if(m_ctrlComm.GetCommEvent()==2)
{
varlant_inp=m ctrlComm.GetInput():
safearray_in=variant_inp;
len=safeary_inp.GetOneDimSize():
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k):
for(k=O;k<len;k++)
{
BYTE bl=*(char*)(rxdata+k):
strtemp.Format(“%c”,bt);
m_strEditR.XData+=strtemp;
}
}
UpdateData(FALSE);
}
根本不触发
vs2005编译器 mscomm 控件 为什么只能发送数据 不能接收数据呢 要接收数据 需要添加什么 具体函数内容 我已大概知道 就是添加什么事件接收呢 比如 oncommscomm()函数是接收数据的么 但是我的为什么不响应这个函数啊谢谢大家啦
一般来说,使用这个控件时,先设定好阀值,比如设置阀值为1个字节,那么当接收到一个字节的数据时,OnComm 事件就会触发,然后你把代码写在这个事件中,取出这1个字节,放到你自己定义的数组中,然后继续收第2个字节,直到收满一帧数据。
通讯都需要一个协议,这个协议由你自己来定,结合你的协议来做吧。
m_mscom.SetRThreshold(1);