最近在做一个陀螺仪的原始数据读取遇到了串口数据读取问题,在网上查阅了一篇技术文档,觉得写的不错,分享一下!
1.1前言
通常使用以下函数来通过Windows系统来对外围设备进行通信,做串口方面的程序,使用CreatFile打开串口通信端口。在对串口进行操作之前,需要首先打开串口。使用C++进行串口编程,如果采用VS开发,则可以直接借助于串口通信控件来操作,其次,也可以直接调用Windows的底层API函数来控制串口通信。
在Windows的操作系统上,将串口(通信设备)作为文件来处理,所以串口的打开、关闭、读写所使用的API函数与文件操作一样。所以打开串口使用CreateFile函数,读写串口使用ReadFile、WriteFile函数,关闭串口使用CloseHandle函数。查看通信设备的串口,可以在设备管理器中查看。
1.2 CreateFile
这个函数的功能是创建或者打开一个文件或者I/O设备,通常使用的I/O形式有文件、文件流、目录、物理磁盘、卷、终端流等。如果执行成功,则返回文件句柄INVALID_HANDLE_VALUE表示出错,会设置GetLastError。
函数的声明定义:
HANDLE WINAPI CreateFile(
_In_ LPCTSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
)
参数列表:
部分参数Tips:
1. IpFileName:指定要打开的串口逻辑名,用字符串来表示。如COM1,COM2,分别表示串口1和串口2.
如果要确定工控机上有哪些串口,可以使用设备管理器查看,我的电脑,右键,属性,设备管理器,如下图: