CreateFile在串口中的运用

     在32位的windows系统中,串口和其他通信设备是作为文件处理的。对串口的操作和对文件的操作是完全一样的。通信以调用CreateFile()开始。

     函数原型如下:

HANDLE CreateFile(

  LPCTSTR lpFileName, //指向文件名的指针

  DWORD dwDesiredAccess, //访问模式(写/读)

  DWORD dwShareMode, //共享模式

  LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针

  DWORD dwCreationDisposition, //如何创建

  DWORD dwFlagsAndAttributes, //文件属性

  HANDLE hTemplateFile //用于复制文件句柄

  );
lpFileName:指定要打开的串口逻辑名,用字符串表示,如:COM1和COM2

dwDesiredAccess 在串口中一般为读写,故一般连起来使用,既既可以读也可以写:参数为GENERIC_READ|GENERIC_WRITE.

dwShareMode:端口的共享属性。对于串口,他为0,这是与文件与通信设备最大的区别。一个程序打开了一个串口,另外一个程序在用CreateFile创建的时候就会出错。

dwCreationDisposition 在串口中必须设置为OPEN_EXISTING。表示不能创建新端口只能打开已有的端口。

 

如果用CreateFile()函数打开COM1,代码如下:

HANDLE hCom;

hCom=CreateFile("COM1",//  文件名,既是COM1,为逻辑名

GENERIC_READ|GENERIC_WRITE,      //允许读和写

0,//独占方式

NULL,

OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,  //重叠方式

NULL

);

你可能感兴趣的:(C/C++)