
API 串口操作
1. 用途:打开串口
原型:HANDLE CreateFile(LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);
参数说明:
-lpFileName:要打开的文件名称。对串口通信来说就是 COM1 或 COM2。
-dwDesiredAccess:读写模式设置。此处应该用 GENERIC_READ 及 GENERIC_WRITE。
-dwShareMode:串口共享模式。此处不允许其他应用程序共享,应为 0。
-lpSecurityAttributes:串口的安全属性,应为 0,表示该串口不可被子程序继承。
-dwCreationDistribution:创建文件的性质,此处为 OPEN_EXISTING.
-dwFlagsAndAttributes:属性及相关标志,这里使用异步方式应该用 FILE_FLAG_OVERLAPPED。
-hTemplateFile:此处为 0。
操作说明:若文件打开成功,串口即可使用了,该函数返回串口的句柄,以后对串口操作时即可使用该
句柄。
举例:HANDLE hComm;
hComm=CreateFile("COM1", //串口号
GENERIC_READ|GENERIC_WRITE, //允许读写 0, //通讯设备必须以独占方式打开
NULL, //无安全属性
OPEN_EXISTING, //通讯设备已存在 FILE_FLAG_OVERLAPPED, //异步 I/O 0); //通讯设备不能用模板打
开 hComm 即为函数返回的串口 1 的句柄。
2 . CloseHandle()
用途:关闭串口
原型:BOOL CloseHandle(HANDLE hObjedt)
参数说明:
-hObjedt:串口句柄
操作说明:成功关闭串口时返回 true,否则返回 false
举例:CloseHandle(hComm);
3. GetCommState()
用途:取得串口当前状态
原型:BOOL GetCommState(HANDLE hFile,
LPDCB lpDCB);
参数说明:
-hFile:串口句柄
-lpDCB:设备控制块(Device Control Block)结构地址。此结构中含有和设备相关的参数。此处是与串口相
关的参数。由于参数非常多,当需要设置串口参数 时,通常是先取得串口的参数结构,修改部分参数后再将
参数结构写入。
在此仅介绍少数的几个常用的参数:
DWORD BaudRate:串口波特率
DWORD fParity:为 1 的话激活奇偶校验检查
DWORD Parity:校验方式,值 0~4 分别对应无校验、奇校验、偶校验、校验置位、校验清零
DWORD ByteSize:一个字节的数据位个数,范围是 5~8
DWORD StopBits:停止位个数,0~2 分别对应 1 位、1.5 位、2 位停止位操作举例:DCB ComDCB; //串
评论30