阅读:1196回复:5
MSComm控件中读取数据,在串口驱动程序中怎么实现?
void CSCommTestDlg::OnComm()
{ // TODO: Add your control notification handler code here VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed. 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存放 m_strRXData+=strtemp; //加入接收编辑框对应字符串 } } UpdateData(FALSE); //更新编辑框内容 } 以上是通过MSComm控件读取数据。m_ctrlComm.GetCommEvent()==2语句是查看缓冲中是否有数据。 这样在串口驱动中是怎么实现的? 有没有这方面的代? 请发一分给我好吗?yhaiquan999@163.com |
|
沙发#
发布于:2002-11-26 15:49
查查msdn吧!那里面有! :D
|
|
|
板凳#
发布于:2002-11-26 16:20
MSComm封装的很好了
串口驱动也是ms提供的 你想要实现什么 |
|
|
地板#
发布于:2002-11-26 16:23
实现一个虚拟的串口。
我用Moax的Pomm.dll组件,能够打开并读取出数据。 在是,用MSComm封装好的。就是不行。怎么办? |
|
地下室#
发布于:2002-11-26 16:29
虚拟的串口需要自己写driver,实现你需要的comX,即可以让应用层像打开真实串口一样的打开这个com,然后实现具体的虚拟读写函数
breaver作过这个东东,问他吧,搜他的帖子也可以,我这有一份他的代码,但是没有他的同意不好给你 :D |
|
|
5楼#
发布于:2002-11-26 16:32
我的读和写已经写好了。用pcomm.dll的组件。是行的。
但是,mscomm好像不是用read来读取出来的。 |
|