上篇博文已经说好怎么接线,然后将USB 转串口接到FL2440的板子上,其串口为"ttyUSB0",今天我们讲的是GPS定位功能数据上报解析,所以先不讲GPRS下的各种AT命令。今天只用到AT的两个指令。
AT+GPS=1 打开GPS
AT+GPS=0 关闭GPS
打开GPS后默认NEMA信息从GPS_TXD管脚以9600的波特率输出,若要让其数据从AT口输出,可用命令AT+GPSRD。
AT+GPSRD=0 关闭NEMA信息从AT口输出。
AT+GPSRD=n NEMA信息n秒从AT口输出一次。
FL2440上运行的程序
这个模块所需要的文件如图所示
串口模块就如前面博文所示 comport.c 和comport.h,
GPS_test是由makefile编译后产生的可执行文件,主要看的是socket_cilent.c文件
以下为socket_cilent.c的源码
/*********************************************************************************
* Copyright: (C) 2018 NULL
* All rights reserved.
*
* Filename: socket_server.c
* Description: This file
*
* Version: 1.0.0(2018年08月04日)
* Author: DingHuanhuan <736787419@qq.com>
* ChangeLog: 1, Release initial version on "2018年08月04日 19时18分17秒"
*
********************************************************************************/
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
/* sockaddr_in{} and other Internet define */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
/* strerror(),perror(), errno head file */
#include <errno.h>
#include "comport.h"
#define BUF_SIZE 1024
#define Serv_IP "192.168.0.5"
#define port 12345
int main(int argc, char **argv)
{
int sockfd = -1; //创建一个套接字
struct sockaddr_in serv_addr;//定义网络通信通用兼容的IPV4/IPV6结构体
char rec_buf[buf_size];
char send_buf[buf_size];
char *devname = "/dev/ttyUSB0";
unsigned long baudrate = 115200;
COM_PORT *comport;
FILE * fp;
comport = Comport_Init(devname, baudrate, "8N1");
if(NULL == comport)
{
printf("init serial port failure\n");
goto fini