获得GPS数据一般可通过两种方法,读串口及调用gpsapi函数。串口作为硬件设备,不能同时被两个程序占用,gpsapi函数几个应用程序可同时共享端口。
原型: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);
参数说明:
1.读串口
先找出gps使用的串口号,然后直接打开串口,读取串口数据了 串口通信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);
参数说明:

本文介绍了获取GPS数据的两种方法,包括读取串口和使用gpsapi函数。读串口涉及打开串口、设置串口状态、读写串口等步骤,需要使用如CreateFile、SetCommState等API函数。通过事件触发的方式可以高效地接收GPS定位信息,提取数据时需要解析如$GPRMC等特定帧格式。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



