龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

Win32下的几种串口通信编程

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
---- 要完成串口通信, 在32位模式下, 一般说来有以下四种方法: ---- 1. 以文件方式打开串口: ---- 这里使用的是Win32 API 函数, 所以无论在BCB或VC下都可以实现. 具体的函数的意义可以参考W

  ---- 要完成串口通信, 在32位模式下, 一般说来有以下四种方法:

  

  

---- 1. 以文件方式打开串口:

  

  

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

  

  

---- 下面给出简要说明:

  

  

---- (1) 应用CreateFile() 来初始化串口

  

  

  

FhFileComm=CreateFile(

  

FCommName.c_str(),

  

GENERIC_READ GENERIC_WR99vE,

  

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来实现:

  

  

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

  

  

  

精彩图集

赞助商链接