yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1196回复:5

MSComm控件中读取数据,在串口驱动程序中怎么实现?

楼主#
更多 发布于:2002-11-26 15:36
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
lxcomcn
驱动老牛
驱动老牛
  • 注册日期2002-07-31
  • 最后登录2010-12-10
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望43点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-26 15:49
查查msdn吧!那里面有! :D
[img]http://www.nbuser.com/vb/avatar.php?userid=10792&dateline=1046232652 [/img] 我要作诗!!!
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-26 16:20
MSComm封装的很好了
串口驱动也是ms提供的

你想要实现什么
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-26 16:23
实现一个虚拟的串口。

我用Moax的Pomm.dll组件,能够打开并读取出数据。
在是,用MSComm封装好的。就是不行。怎么办?
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-26 16:29
虚拟的串口需要自己写driver,实现你需要的comX,即可以让应用层像打开真实串口一样的打开这个com,然后实现具体的虚拟读写函数

breaver作过这个东东,问他吧,搜他的帖子也可以,我这有一份他的代码,但是没有他的同意不好给你 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
yhaiquan
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-26 16:32
我的读和写已经写好了。用pcomm.dll的组件。是行的。
但是,mscomm好像不是用read来读取出来的。
游客

返回顶部