找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求助,单片机+GPS显示到LCD乱码

查看数: 2346 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-6-12 12:51

正文摘要:

/***********************************main.c***********************************/ #include <reg51.h> #include "lcd1602.h" #include "gps.h" #include "delay.h" bit flag_GPS_OK =0; ...

回复

ID:73435 发表于 2020-6-15 10:13
Patrick6277 发表于 2020-6-13 10:22
是要用if来判断吗,比如加个
if(GNGGA1[6] ==','&& GNGGA1[17]==',')
{

不要固定逗号位置,要用strstr来查找到逗号开始解析;
比如下面的GPS数据,第一个逗号后面是什么数据,第二个逗号后面是纬度,第三个逗号后面是南北,第四个逗号后面是经度,第五个逗号后面是东西,依次类推,不能固定数组第几个位是什么数据
$GNGGA,045625.000,3033.74024,N,10405.67012,E,1,07,2.6,446.2,M,0.0,M,,*71
$GNGLL,3033.74024,N,10405.67012,E,045625.000,A,A*43
$GPGSA,A,3,11,17,28,195,,,,,,,,,3.9,2.6,2.9*06
$BDGSA,A,3,07,10,12,,,,,,,,,,3.9,2.6,2.9*23
$GPGSV,4,1,13,01,,,36,03,26,107,,06,17,213,,07,26,180,*41
$GPGSV,4,2,13,11,16,049,33,17,48,298,19,19,30,275,,22,25,079,*74
$GPGSV,4,3,13,28,62,347,21,30,49,211,,193,,,14,194,41,140,03*4C
$GPGSV,4,4,13,195,56,061,33*72
$BDGSV,1,1,03,07,63,101,29,10,78,009,23,12,53,023,31*52
$GNRMC,045625.000,A,3033.74024,N,10405.67012,E,0.00,44.16,060620,,,A*41
$GNVTG,44.16,T,,M,0.00,N,0.00,K,A*14
$GNZDA,045625.000,06,06,2020,00,00*48
$GPTXT,01,01,01,ANTENNA OK*35
ID:773086 发表于 2020-6-13 19:26
lyq130 发表于 2020-6-13 11:51
用仿真器看GPS收到的数据,这样调试起来比较快

GPS不懂怎么仿真。。。
ID:59076 发表于 2020-6-13 11:51
用仿真器看GPS收到的数据,这样调试起来比较快
ID:773086 发表于 2020-6-13 10:22
294479435 发表于 2020-6-12 16:06
首先确定你的lcd的显示字符api没有问题的话,那就是你的gps解析有问题了,看了下你的解析,应该是GPS解析有 ...

是要用if来判断吗,比如加个
if(GNGGA1[6] ==','&& GNGGA1[17]==',')
{
LCD1602_char(GNGGA1[7]) ;//时
LCD1602_char(GNGGA1[8]);
}
来判断,因为第六位和第十七位是逗号,然后让逗号之间的数值显示?
ID:73435 发表于 2020-6-12 16:06
首先确定你的lcd的显示字符api没有问题的话,那就是你的gps解析有问题了,看了下你的解析,应该是GPS解析有误吧,时间不可能固定在数组的第几位,需要根据逗号“,”来分别解析经纬度和时间

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表