概述
之前编写了一个读取GPS内容的代码,现将之贴出来。此代码中涉及到串口初始化、串口操作的打开、关闭、读写,还涉及到GPS相关协议的解析,如接收到的GPS数据如何处理,如何发送数据到GPS模块等。协议采用的是SIM68VB NMEA协议。
1、 串口初始化代码如下:
此函数为设置串口 属性如波特率、数据位、校验位、停止位,此函数将串口设置为非阻塞,在读串口时可采用I/O多路复用的机制。
例:configs ="115200,8,1,N" 115200代表波特率,8数据位,1停止位,N无校验
int SetNolockComCfg(int fd, char *configs)
{
int uBaudRate, databits, stopbits;
char parity;
char temp[32];
char *p1 = NULL, *p2 = NULL;
int n = 0;
unsigned int flag = 0;
unsigned short Speed;
int stats;
struct termios options;
/* clear struct for new port settings */
bzero(&options, sizeof (struct termios));
//波特率
p1 = configs;
p2 = strchr(p1, ',');
n = p2 - p1;
if (n) {
strncpy(temp, p1, n);
temp[n] = '