OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11656|回复: 9

怎么用GPS秒脉冲同步UTC时间

[复制链接]

2

主题

13

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-1-23
在线时间
1 小时
发表于 2015-1-23 15:32:53 | 显示全部楼层 |阅读模式
5金钱
帮忙想想思路     刚买了正点原子的GPS模块,有没有相关方面的中文资料

最佳答案

查看完整内容[请看2#楼]

UTC时间不需要你用秒同步去同步了. PPS一般是给你的设备去同步时间的,而不是给GPS本身用的.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-23 15:32:54 | 显示全部楼层
UTC时间不需要你用秒同步去同步了.
PPS一般是给你的设备去同步时间的,而不是给GPS本身用的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-1-23
在线时间
1 小时
 楼主| 发表于 2015-1-24 13:58:57 | 显示全部楼层
那我怎么区别是这一秒,还是下一秒
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-24 23:21:03 | 显示全部楼层
回复【3楼】易州许:
---------------------------------
你不需要区别.
只需要来一个脉冲,秒钟数加1即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-1-23
在线时间
1 小时
 楼主| 发表于 2015-1-26 13:29:20 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
今天收到GPS板子了,但是数据
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,2,1,07,01,,,27,02,,,27,04,,,20,13,,,22*7A
$GPGSV,2,2,07,17,,,24,19,,,21,26,,,29*7A
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,2,1,06,01,,,12,02,,,25,04,,,17,07,,,27*7B
$GPGSV,2,2,06,13,,,19,26,,,21*72
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,04,01,,,10,04,,,14,13,,,15,26,,,19*76
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,01,26,,,16*7B
$GPGLL,,,,,,V,N*64
都是这样的   怎么回事?
板子上的PPS灯也不闪
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-26 23:58:25 | 显示全部楼层
回复【5楼】易州许:
---------------------------------
模块要在室外才能定位。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-1-23
在线时间
1 小时
 楼主| 发表于 2015-2-7 17:19:46 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
由于本人对结构体不太了解,正在看这方面知识,有几个地方没有看懂,希望有人能给讲一讲,谢谢!!!
1、__packed typedef struct  
{     
  u8 num;  //卫星编号
u8 eledeg; //卫星仰角
u16 azideg; //卫星方位角
u8 sn;  //信噪比    
}nmea_slmsg;  

这样定义了结构体,放在GPS.H里,如果别的.C文件#include "gps.h" ,这样的话结构体的变量算是全局变量吗?
2、nmea_msg  gpsx; //GPS信息
在mian.c的开头有上面这句话,这句话的作用是什么?
3、//分析GPGSV信息
//gpsx:nmea信息结构体
//buf:接收到的GPS数据缓冲区首地址
void NMEA_GPGSV_Analysis(nmea_msg *gpsx,u8 *buf)
{
u8 *p,*p1,dx;
u8 len,i,j,slx=0;
u8 posx;    
p=buf;
p1=(u8*)strstr((const char *)p,"$GPGSV");
len=p1[7]-'0';  //得到GPGSV的条数
posx=NMEA_Comma_Pos(p1,3); //得到可见卫星总数
if(posx!=0XFF)gpsx->svnum=NMEA_Str2num(p1+posx,&dx);
for(i=0;i<len;i++)
{  
p1=(u8*)strstr((const char *)p,"$GPGSV");  
for(j=0;j<4;j++)
{   
posx=NMEA_Comma_Pos(p1,4+j*4);
if(posx!=0XFF)gpsx->slmsg[slx].num=NMEA_Str2num(p1+posx,&dx); //得到卫星编号
else break; 
posx=NMEA_Comma_Pos(p1,5+j*4);
if(posx!=0XFF)gpsx->slmsg[slx].eledeg=NMEA_Str2num(p1+posx,&dx);//得到卫星仰角 
else break;
posx=NMEA_Comma_Pos(p1,6+j*4);
if(posx!=0XFF)gpsx->slmsg[slx].azideg=NMEA_Str2num(p1+posx,&dx);//得到卫星方位角
else break; 
posx=NMEA_Comma_Pos(p1,7+j*4);
if(posx!=0XFF)gpsx->slmsg[slx].sn=NMEA_Str2num(p1+posx,&dx); //得到卫星信噪比
else break;
slx++;    
}   
   p=p1+1;//切换到下一个GPGSV信息
}   
}

为什么要这样写函数,u8 *buf  是指向收到数据的首地址,nmea_msg *gpsx  是什么作用,怎么通过它就指向了nmea_msg中的的结构体变量,
4、void GPS_Analysis(nmea_msg *gpsx,u8 *buf)
{
NMEA_GPGSV_Analysis(gpsx,buf); //GPGSV解析
NMEA_GPGGA_Analysis(gpsx,buf); //GPGGA解析 
NMEA_GPGSA_Analysis(gpsx,buf); //GPGSA解析
NMEA_GPRMC_Analysis(gpsx,buf); //GPRMC解析
NMEA_GPVTG_Analysis(gpsx,buf); //GPVTG解析
}
如何调用这个函数,没有看懂主函数中调用的方法GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF);//分析字符串

总结:也许叙述的有点混乱,我的总体问题就是,如何实现调用GPS.c中的函数,分析出GPS的参数。
可能问的问题比较弱智,但是我真的没有看明白,谢谢大神解答!!!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-7 22:11:56 | 显示全部楼层
1,这是个结构体类型定义,不是结构体。
2,定义结构体变量:gpsx
3,这是两个参数。
4,给合法参数,就可以调用该函数。

总结:你C语言不熟,好好练习。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2021-3-8
在线时间
2 小时
发表于 2021-3-10 11:58:21 | 显示全部楼层
老兄,如何通过pps给设备进行时间同步呢?求高手解答
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2021-3-8
在线时间
2 小时
发表于 2021-3-10 11:59:17 | 显示全部楼层

老兄,如何通过pps给设备进行时间同步呢?求高手解答
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 17:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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