社区
Windows SDK/API
帖子详情
请问函数createfile(打开串口)的返回值是什么类型的?
jxfzy
2004-01-09 01:37:39
在DELPHI中用什么类型啊
...全文
496
8
打赏
收藏
请问函数createfile(打开串口)的返回值是什么类型的?
在DELPHI中用什么类型啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stephenland74
2004-01-12
打赏
举报
回复
是一个句柄,今后所有对该串口操作的函数均会引用该句柄的,HANDLE就是铁锅把手,铁锅就是容器,用来炒菜,没有把手怎么能行呢?
cooling
2004-01-11
打赏
举报
回复
跟踪下去是一个 LongWord 类型的
Sumie@Sam
2004-01-11
打赏
举报
回复
句柄THandle
dqycxf
2004-01-11
打赏
举报
回复
Long,如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError。
jpyc
2004-01-09
打赏
举报
回复
Thandle是个句柄
cooling
2004-01-09
打赏
举报
回复
function CloseCom(ComHdl: THandle): Boolean;
//关闭串口
begin
Result := CloseHandle(ComHdl);
end;
cooling
2004-01-09
打赏
举报
回复
function OpenCom(pComPort : Byte; iBaundRate : Integer): THandle;
// 打开串口
// pComPort: 串口名称或设备路径,可用"COM1"或"\\.\COM1"两种方式,建议用后者
// iBaundRate: 波特率
var
ComHdl: THandle;
Dcb: TDCB;
TimeOut: ComMtimeOuts; //100, 1, 500, 1, 100
pTpPort: PChar;
begin
pTpPort := PChar('com' + IntToStr(pComPort));
TimeOut.ReadIntervalTimeout := 100; //读字符间隔超时时间: 100 ms
TimeOut.ReadTotalTimeoutMultiplier := 1; //读操作时每字符的时间: 1 ms (n个字符总共为n ms)
TimeOut.ReadTotalTimeoutConstant := 500; //基本的(额外的)读超时时间: 500 ms
TimeOut.WriteTotalTimeoutMultiplier := 1; //写操作时每字符的时间: 1 ms (n个字符总共为n ms)
TimeOut.WriteTotalTimeoutConstant := 100; //基本的(额外的)写超时时间: 100 ms
ComHdl := Createfile(
pTpPort, //串口名称或设备路径
Generic_Read or Generic_Write, //读写方式
0, //共享方式:独占
nil, //认的安全描述符
open_existing, //创建方式
0, //不需设置文件属性
0 //不需参照模板文件
);
if (ComHdl = Invalid_Handle_Value) then
begin
Result := ComHdl; //打开串口失败
Exit;
end;
GetCommState(ComHdl, Dcb); //取DCB
Dcb.BaudRate := iBaundRate;
Dcb.ByteSize := 8;
Dcb.Parity := EvenParity;
Dcb.StopBits := 1;
SetCommState(ComHdl, Dcb); //设置DCB
SetUpComm(ComHdl, 4096, 1024); //设置输入输出缓冲
SetCommTimeOuts(ComHdl, TimeOut); //设置超时
Result := ComHdl;
end;
cooling
2004-01-09
打赏
举报
回复
Thandle
串口
之
Create
File
函数
详解
HANDLE
Create
File
( LPCTSTR lp
File
Name, //指向文件名的指针 DWORD dwDesiredAccess, //访问模式(写/读) DWORD dwShareMode, //共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针 DWORD dwCreationDi
用
Create
File
打开
COM10以上的
串口
在VS2005上用
Create
File
打开
串口
,代码如下:
HANDLE m_hComm=
Create
File
(Port,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0); if(m_hComm==INVALID_HANDLE_VALUE ) { AfxMessageBox(_T("无法
打开
端口!请检查是否已被占用。")); return FALSE; }
其中Port是LPCTSTR类
高级
串口
编程—C/C++
打开
串口
、关闭
串口
和读
串口
函数
最近在做一个陀螺仪的原始数据读取遇到了
串口
数据读取问题,在网上查阅了一篇技术文档,觉得写的不错,分享一下! 1.1前言 通常使用以下
函数
来通过Windows系统来对外围设备进行通信,做
串口
方面的程序,使用Creat
File
打开
串口
通信端口。在对
串口
进行操作之前,需要首先
打开
串口
。使用C++进行
串口
编程,如果采用VS开发,则可以直接借助于
串口
通信控件来操作,其次,也可以直接调用W...
Create
File
打开
串口
时
串口
名字的写法
打开
COM1到COM9用:
m_hCom =
Create
File
(_T("COM1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);
或者
m_hCom =
Create
File
(_T("COM1"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);
(第一个参数有没有分号都可以
Create
File
()、GetCommState()、SetCommState()
打开
串口
失败的原因或许是这个
博主初次在CSDN发帖,如果有什么写的不好的地方请多多见谅! 对于一般新手而言,直接使用
Create
File
函数
时,通常会出现以下错误:
函数
"char *"
类型
的实参与 "LPCWSTR"
类型
的形参不兼容 例如: bool openport(char *portname)//
打开
串口
{ hComm =
Create
File
(portname, //
串口
号 //GENERI
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章