当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>Win32下的几种串口通信编程</b>[VC/C++编程]

赞助商链接



  本文“<b>Win32下的几种串口通信编程</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

要完成串口通信, 在32位情势下, 普通说来有以下四种办法:

1.以文件方法翻开串口:

这里利用的是Win32 API 函数, 所以无论在BCB或VC下都可以实现.具体的函数的意义可以参考Win32 API 的帮忙.这里有一个易于利用的BCB下的类, 可以便利的利用串口.

下面给出扼要阐明:

(1) 利用CreateFile() 来初始化串口

FhFileComm=CreateFile(
   FCommName.c_str(),
   GENERIC_READ | GENERIC_WRITE,
   0, // exclusive access
   &lpSecurity,
   OPEN_EXISTING,
   FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, // overlapped I/O
   NULL );
 if( FhFileComm == INVALID_HANDLE_VALUE)
    return false;

(2) 利用WriteFile() 和 ReadFile() 从串口读写数据


   bool MyComm::WriteBuffer(unsigned char *buffer,unsigned long length)
   {
     return WriteFile(FhFileComm,buffer,length,&length,&FgOverLapped);
   }
  bool MyComm::ReadBuffer(unsigned char *buffer,unsigned long length)
   {
     return ReadFile(FhFileComm,buffer,length,&length,&FgOverLapped);
   }

呼应的源文件为 UsageComm.cpp UsageComm.h

2.利用现成的控件:

易于利用的是微软的MS Communication 控件, 它是做为一个 .ocx 供应的.

在BCB 中可以用Import ActiveX Control 将它加入到BCB 中, 缺省是加载在ActiveX 页中.便可以作为一个普通的BCB 控件来利用了.(也有不少第三方供应的别的硬件操作控件)

3.直接嵌入汇编法:

(该办法不能在NT下利用, 由于98的非完好保护, 下面的代码可以利用)操纵BCB的直接嵌入汇编功效, 可以在BCB中直接对串口操作.

以下所示,在BCB中利用汇编代码以下

byte __fastcall ReadByte(WORD Address)
  // eax :address
  {
   asm
   {
    mov  DX,AX
    in  AL,DX
   }
  }
  void __fastcall WriteByte (unsigned char byte, WORD Address)
// EAX: BYTE EDX: ADDRESS
  {
   asm
   {
    out  DX,AL
   }
  }

这里必须用__fastcall 调用约定以使在调用该函数时用存放器传送参数.

(用在BCB中的汇编指令代码in 和out必须用小写,(别的可认为大写)存放器名称大小写都可以)

别的的如写多个字节,读多个字节, 一样可以实现.

4.最艰难的要数用VxD来实现:

这不是一下子能说得清的, 假如要做, 当然要找本书了.


  以上是“<b>Win32下的几种串口通信编程</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .