欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

串口-CreateFile的使用

程序员文章站 2022-07-01 21:53:51
在32位的windows系统中,串口和其他通信设备是作为文件处理的。对串口的操作和对文件的操作是完全一样的。通信以调用CreateFile()开始。 函数原型如下: 如果用CreateFile()函数打开COM1,代码如下: ......

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

  函数原型如下:

 

HANDLE CreateFile
(
  LPCTSTR lpFileName, //指向文件名的指针:指定要打开的串口逻辑名,用字符串表示,如:COM1和COM2
   DWORD dwDesiredAccess, //访问模式(写/读):在串口中一般为读写,故一般连起来使用,既既可以读也可以写:参数为GENERIC_READ|GENERIC_WRITE
  DWORD dwShareMode, //共享模式:端口的共享属性。对于串口,他为0,这是与文件与通信设备最大的区别。一个程序打开了一个串口,另外一个程序在用CreateFile创建的时候就会出错。
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针   
DWORD dwCreationDisposition, //如何创建:在串口中必须设置为OPEN_EXISTING。表示不能创建新端口只能打开已有的端口。
  DWORD dwFlagsAndAttributes, //文件属性   HANDLE hTemplateFile //用于复制文件句柄 
);

 

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

 

HANDLE hCom;
hCom=CreateFile
(
   "COM1",//  文件名,既是COM1,为逻辑名
   GENERIC_READ|GENERIC_WRITE,      //允许读和写
   0,//独占方式
   NULL,
   OPEN_EXISTING,
   FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,  //重叠方式
   NULL
);