串口操作之API篇 CreateFile

本文介绍了如何使用CreateFile函数来打开串口,并详细解释了各个参数的意义。包括串口逻辑名称的正确格式、访问方式的选择、共享模式的设置等。通过具体的示例代码展示了正确的调用方式。
CreateFile
http://bbs.fishc.com/thread-72944-1-1.html

(出处: 鱼C论坛)

------------------------------------------------------------------------

CreateFile用于打开串口,如果操作成功,返回一个句柄.

1 function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: DWORD;   
2   lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition, dwFlagsAndAttributes: DWORD;   
3   hTemplateFile: THandle): THandle; stdcall;  

来解释一下参数.
lpFileName:要打开的串口逻辑名称,比如:COM1,COM2....,记住一点,如果打开的串口大于10,直接的COM10是打不开的,需要改成 \\.\COM10 才可以.
dwDesiredAccess:访问串口的方式,可读,可写,或者是可读&可写.
dwShareMode:共享模式,串口不可共享,这个要填写0.
lpSecurityAttributes:安全属性的结构体指针,缺省为nil.
dwCreationDisposition:创建标志,操作串口应该设置为OPEN_EXISTING.
dwFlagsAndAttributes:属性和标志位,如果需要异步I/O的操作,需要增加该标志FILE_FLAG_OVERLAPPED.缺省为FILE_ATTRIBUTE_NORMAL.异步I/O的操作不在此讨论,有兴趣可以看看侯捷翻译的win32多线程程序设计.
hTemplateFile:模板文件句柄,串口操作,这个要填写0.

其他的详细参数,可以参考delphi的帮助,或者MSDN.

例子:

1 FCommHandle := CreateFile(PCHAR(FCommName), 
                            GENERIC_READ or GENERIC_WRITE,   
                            0, 
                            nil, 
                            OPEN_EXISTING, 
                            FILE_ATTRIBUTE_NORMAL, 
                            0);   
3 FCommHandle := CreateFile(PCHAR('\\.\COM12'), GENERIC_READ or GENERIC_WRITE,   
4                       0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);  


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值