用creatfile函数打开串口

原创 2013年12月04日 21:43:57

windows把串口设备当做文件来对待操作,所以用CreatFile,CloseFile等函数对串口进行操作。

creatfile函数定义如下:

HANDLE CreatFile(
LPCTSTR lpName,//文件名,此处为串口号
DWORD dwDesireAccess,//访问类型,读(GENERIC_READ)写(GENERIC_WRITE)两者兼有(GENERIC_READ|GENERIC_WRITE)
DWORD dwShareMode,//文件的共享属性,由于串口不能共享,所以设置为0
LPSECURITY_ATTRIBUTES lpSecurityAttributes,//安全属性,参数为LPSECURITY_ATTRIBUTES结构。
DWORD dwCreationDisposition,//指定端口被占用时采取的行动,此处必须设为OPEN_EXISTING,打开一个已经存在的端口
DWORD dwFlagsAndAttributes,//端口属性,FILE_FLAG_OVERLAPPED有意义,可以后台运行
HANDLE hTemplateFile//指向模板文件的句柄,端口时必须设置为零。
);

typedef struct _SECURITY_ATTRIBUTES {   
	DWORD  nLength;   //结构的长度
	LPVOID lpSecurityDescriptor;  //指向一个安全描述符 
	BOOL   bInheritHandle;   //句柄能否被继承
	} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES; 

 

句柄:用一个四字节长度的值来标志应用程序中的不同对象和同类对象中的不同实例,如一个窗口、按钮等,应用程序能够通过句柄访问相应的对象的信息,但句柄不是一个指针。Windows之所以设置句柄,与内存管理机制的虚拟地址有关,数据的地址要变动,用句柄来记载数据地址的变动,。数据对象家载入内存后获得了地址,但这个地址并不固定,数据对象在内存和硬盘之间游曳移动,所以系统为进程分配固定的地址来储存进程下数据对象变化后的地址,重新启用该数据时,去所属句柄按内容存取即可。

句柄继承:父进程生成子进程时发生,如果是可继承的那么子进程可以通过句柄访问内核对象。不可以继承则子程序不能通过句柄访问内核对象。

用creatfile函数打开串口:

HANDLE hCom;
hCom=CreatFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXSTING,
FILE_ATTRIBUTE_NORMAL,
0);


使用CreateFile()打开COM10及以上串行口

程序调试时发现,使用CreateFile()打开COM1时正常,打开COM10时却总是失败。 而MSDN上对使用CreateFile()打开设备函数却失败返回并无详细解释,百思不得其解。上网百度...
  • xiezhaoxuan
  • xiezhaoxuan
  • 2015年10月29日 13:37
  • 1931

串口之CreateFile 函数详解

HANDLE CreateFile( LPCTSTR lpFileName, //指向文件名的指针 DWORD dwDesiredAccess, //访问模式(写/读) DWORD dwShar...
  • wangshubo1989
  • wangshubo1989
  • 2015年08月18日 08:40
  • 12812

使用CreateFile读写文件

微软提供了强大的文件读写操作的编程接口,所以可以通过调用API函数实现文件的读写操作。这里通过CreateFile函数来实现。 要对文件进行读写操作,首先要调用CreateFile函数打开或者创建文...
  • u012877472
  • u012877472
  • 2015年11月07日 10:38
  • 5912

open fopen CreatFile 区别

fopen /open区别 UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write 这里简单的介绍一下他们的...
  • zwx5225
  • zwx5225
  • 2011年10月12日 18:56
  • 540

Windows 串口API函数详解

  • 2017年11月12日 09:52
  • 109KB
  • 下载

STM32的UART串口1-带SYSTICK中断Printf(STM32神舟IV号-库函数版)程序,亲测能用

  • 2017年11月25日 17:33
  • 2.48MB
  • 下载

STM32的串口高级例程之Printf中断收发实验(STM32神舟IV号-库函数版)程序,亲测能用

  • 2017年11月25日 17:43
  • 3.49MB
  • 下载

STM32-串口发送函数

  • 2012年09月26日 22:27
  • 1.27MB
  • 下载

API通信函数(串口通讯)

  • 2009年08月12日 11:15
  • 566KB
  • 下载

使用API函数实现的串口通讯DLL(含源码VC++)

  • 2010年05月14日 15:42
  • 3.19MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用creatfile函数打开串口
举报原因:
原因补充:

(最多只允许输入30个字)