OpenEdv-开源电子网

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

原子哥,关于GPS接收回来的数据,为什么不正确的??、求救。。。。

[复制链接]

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
发表于 2013-7-3 15:37:02 | 显示全部楼层 |阅读模式

原子哥,刚买了你的GPS模块,代码我改过,我用的是USART2串口的。协议应该是gprmc,但 GPS接收回来的第一个数据为什么不是"$"的,那就说接收回来的数据时错误的。。。。





GPS上的第20引脚作为发送 引脚,STM103FRE上的第17引脚(作为接收引脚)连接GPS上的第20引脚。。。




void Usart2_Init(u32 pclk1,u32 bound)
{    
 float temp;
 u16 mantissa;
 u16 fraction;   
 temp=(float)(pclk1*1000000)/(bound*16);//得到USARTDIV
 mantissa=temp;     //得到整数部分
 fraction=(temp-mantissa)*16; //得到小数部分 
 mantissa<<=4;   //相当于mantissa 乘以10
 mantissa+=fraction;
 
 //RCC->APB2ENR|=1<<8;//使能PORTG口时钟 

 RCC->APB2ENR|=1<<2;   //使能PORTA口时钟 
 RCC->APB1ENR|=1<<17;  //使能串口2时钟      USART2时钟使能
 
 //GPIOA->CRL&=0XFFFF00FF;
 //GPIOA->CRL|=0X00008B00;//IO状态设置PA2,PA3
 GPIOA->CRL&=0XFFFF00FF;
 GPIOA->CRL|=0X00004B00;//IO状态设置PA2,PA3
 RCC->APB1RSTR|=1<<17;   //复位串口2      复位USART2
 RCC->APB1RSTR&=~(1<<17);//停止复位       
 //波特率设置
 USART2->BRR=mantissa; // 波特率设置 
 USART2->CR1|=0x200C;//  1位停止,无校验位.    13位UE使能USART模块使模,  3位TE:发送使能
       //di2位RE:接收使能    1接收被使能,开始搜寻RX引脚上的起始位
 //USART2->CR1|=0x340C;// 1位停止,偶校验
 //使能接收中断
 USART2->CR1|=1<<8;    //PE中断使能   1 当USART_RT中的PE为1时,产生USART中断
 USART2->CR1|=1<<5;    //接收缓冲区非空中断使能   1 当USART_SR中的ORE或者RXNE为1时,产生USART中断  
 MY_NVIC_Init(3,3,USART2_IRQChannel,2);//组2,最低优先级
          //嵌套向量中断控制器NVIC(Nested Vectored
          //Interrupt Controller)。它与内核有很深的“私交”
          //——与内核是紧耦合的
}

只求每天都能把小事做好。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-3 17:00:52 | 显示全部楼层
Usart2_Init(72,38400);//串口2初始化38400           这样子设置对吗???
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-4 00:49:27 | 显示全部楼层
不对,usart2的频率是36Mhz
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-4 09:36:42 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
为什么是36Mhz   原子哥
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-4 10:09:47 | 显示全部楼层
看时钟树图.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-4 11:47:11 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
嗯嗯,知道了。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-4 22:16:45 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,怎么样去判断GPS接收回来的数据是正常的??    如何判断的?GPS模块是买你的那块。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-5 00:11:58 | 显示全部楼层
回复【7楼】我爱STM_32:
---------------------------------
只要有数据返回,说明模块就是正常的,不正常的不会返回数据的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-5 14:00:14 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
是有数据,但是什么样的数据才算正常的??
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-5 16:02:41 | 显示全部楼层
回复【9楼】我爱STM_32:
---------------------------------
这个你看卫星数,有没有慢慢增多.
刚开始的时候,都是没几个的,后续会慢慢变,可见卫星数,另外UTC时间,一般都是可以获取的.
但是都得看你的测试环境,如果你在室内,那就无法测试了...都一样.
得放室外,才可以测试.
你可以接上我们的开发板,跑到户外放几分钟,看看液晶数据的变化
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-5 16:17:49 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
卫星数是慢慢增多的  有时候试过有8个。。。。。但是经纬度和UTC时间一直都是0       不解
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-5 23:09:04 | 显示全部楼层
回复【11楼】我爱STM_32:
---------------------------------
那就模块有问题了...
8个可见卫星,应该UTC时间早就有显示了才对.
你在哪里测试的?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-6 13:02:31 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
阳台。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-6 21:06:55 | 显示全部楼层
回复【13楼】我爱STM_32:
---------------------------------
开阔么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-7 12:50:33 | 显示全部楼层
回复【14楼】正点原子:
---------------------------------
就是楼顶。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-7 20:50:58 | 显示全部楼层
那应该可以定位才是的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-8 13:06:12 | 显示全部楼层
回复【16楼】正点原子:
---------------------------------
我也不怎么清楚   老是没数据。。   烦
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-8 15:53:28 | 显示全部楼层
回复【17楼】我爱STM_32:
---------------------------------
发回来给我检查下吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-8 17:45:21 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
好的
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-8 18:02:51 | 显示全部楼层
 有些东西还没写
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-9 17:56:21 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
原子哥,为什么接收回来就只能看到时间和日期   还有一直都是无效位的V标志    就是收不到经纬度的。。。。又进入纳闷中
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-9 18:32:55 | 显示全部楼层
回复【21楼】我爱STM_32:
---------------------------------
可否旺旺联系下我们?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-9 18:53:25 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
应该是我写得代码的问题   硬件没问题(我叫我朋友帮我测过)
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-9 21:25:09 | 显示全部楼层
回复【23楼】我爱STM_32:
---------------------------------
哦,我们不是提供了参考代码么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-10 09:26:35 | 显示全部楼层
回复【24楼】正点原子:
---------------------------------
跟你的代码有点不一样。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-10 09:39:14 | 显示全部楼层
回复【24楼】正点原子:
---------------------------------
原子哥,怎样才会出现有效定位“A”这个标记的??
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-10 10:38:33 | 显示全部楼层
这些都是GPS模块自己的事情,我们无法掌控,只能把它放到一个信号好的地方.
出现A是GPS模块自己的事情...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-10 12:46:51 | 显示全部楼层
回复【27楼】正点原子:
---------------------------------
嗯嗯,谢谢原子哥。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-11 19:06:44 | 显示全部楼层
回复【27楼】正点原子:
---------------------------------
原子哥  看到有4个可用卫星,有效位A也有了,但是接受回来的经纬度误差挺大的   我在深圳,但接收回来的经纬度放到谷歌地球里看就去到香港了。。。。   请问这是怎么回事啊??
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-12 00:14:42 | 显示全部楼层
回复【29楼】我爱STM_32:
---------------------------------
不至于吧,你计算错了吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-12 11:03:45 | 显示全部楼层
回复【30楼】正点原子:
---------------------------------
不用计算吧?我是接着用数组去存储卫星过来的数据的,然后显示出来。。。这样子会有什么问题?
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-12 14:02:23 | 显示全部楼层
回复【31楼】我爱STM_32:
---------------------------------
那你知道直接独到的数据表示方式么?
直接读到的是度分格式?还是只是度?这要转换的!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-12 15:33:24 | 显示全部楼层
回复【32楼】正点原子:
---------------------------------
void USART2_IRQHandler(void) //串口2中断接收               GPS通讯协议
{
if(USART2->SR&(1<<5))//接收到数据 判断sr寄存器的第五位,即RXNE位是否是1. 1有数据0没有。
{  
res=USART2->DR; 
switch(res)
{
case '$':
mod_cmd=0;
mod=1;                //接收命令模式
byte_count=0;        //接收位数清空

// LCD_ShowChar(66,70,res,16,0); //$

break;
case ',':
seg_count++;        //逗号计数加1
byte_count=0;

// LCD_ShowChar(74,70,res,16,0); //,

break;
case '*':    //接收完成
if(mod_cmd==1)
ReceiveBit=1;//gprmc
if(mod_cmd==2)
ReceiveBit1=1;//gga
mod=0;

// LCD_ShowChar(82,70,res,16,0); //*

break;
default:
if(mod==1)
{
//命令种类判断
cmd[byte_count]=res;            //接收字符放入类型缓存
if(byte_count>=4)
{                //如果类型数据接收完毕,判断类型
if(cmd[0]=='G')
{
if(cmd[1]=='P')
{
if(cmd[2]=='R')
{
if(cmd[3]=='M')
{
if(cmd[4]=='C')
{
mod_cmd=1;
mod=2;
seg_count=0;
byte_count=0;
}
}
}
else if(cmd[2]=='G')
{
if(cmd[3]=='G')
{
if(cmd[4]=='A')
{
mod_cmd=2;
mod=2;
seg_count=0;
byte_count=0;
}
}
}
}
}
}
}
else if(mod==2)
{
switch (mod_cmd)
{
case 1:
gprmc_cmd();
break;
case 2:
gpgga_cmd();
break;
}
}
byte_count++;        //接收数位加
break;
}
}    
}




void gprmc_cmd(void)
{
switch(seg_count) //数逗号数(第seg_count个)
{
case 1:
if(byte_count<6)
time[byte_count]=res;//时间处理 UTC时间,hhmmss(时分秒)
break;
case 2://定位状态 定位是否有效  A=有效  V=无效
if(byte_count<1)
lock=res;
break;
case 3://纬度数据 纬度ddmmm.mmmmm(度分)
if(byte_count<9)
WD[byte_count]=res;
break;
case 4://纬度半球 N=北半球  S=南半球
if(byte_count<1)
WD_a=res;
break;
case 5://经度数据 经度dddmm.mmmmm(度分)
if(byte_count<10)
JD[byte_count]=res;
break;
case 6://经度半球 E=东经W=西经
if(byte_count<1)
JD_a=res;
break;
case 7://速度处理 地面速率(000.0~999.9)
if(byte_count<5)
speed[byte_count]=res;
break;
case 8://方位角处理  地面航向(000.0~359.9度,以正北方为参考基准)
if(byte_count<5)
angle[byte_count]=res;
break;
case 9:
if(byte_count<6)//时间处理 UTC日期,ddmmyy(日月年)
date[byte_count]=res;    
break;
}
}




void gpgga_cmd(void)
{
switch(seg_count)
{
case 7:                                //定位使用的卫星数
if(byte_count<2)
use_sat[byte_count]=res;
break;
}
}

接收回来的数据都放数组里



int main(void)
{
Stm32_Clock_Init(9);// 系统时钟设置
Delay_Init(72);  //延时初始化
Usart2_Init(36,38400);//串口2初始化38400
Portset();
SPIx_Init();
LCD_Init();
// SPI_Flash_Write(gImage_quantu,4273645+76800*0,76800);
delay_ms(300);
// BackGround_Pic(0,1);
if(Font_Init())//字库不存在,则更新字库
POINT_COLOR=MAGENTA;    
POINT_COLOR=RED;


reginit();

// Show_Str(50,70, "无效",16,0);
// LCD_ShowBigChar(50,160,'A'); 
// Show_big_Font(60,100,0,60,0);
// Show_big_Font(120,100,1,60,0);
// Show_big_Font(180,100,2,60,0);
// Show_big_Font(180,100,3,60,0);
/* LCD_ShowChar(66,70,0x24,16,0); //$
LCD_ShowChar(74,70,0x2C,16,0); //,
LCD_ShowChar(82,70,0x2A,16,0); //
LCD_ShowChar(90,70,0x47,16,0); //G
LCD_ShowChar(98,70,0x50,16,0); //P
LCD_ShowChar(106,70,0x52,16,0); //R
LCD_ShowChar(114,70,0x4D,16,0); //M
LCD_ShowChar(122,70,0x43,16,0);       */ //C
// LCD_ShowChar(130,70,0x0A,16,0);



while(1)
{
// BackGround_Pic(4,1);
// gprmc_cmd();
// BackGround_Pic(0,1);
if(ReceiveBit==1)
{
gps_disp();

}
if(ReceiveBit1==1)
{
gps_disp1();

}
}

   
}


void gps_disp1(void) 
{
// u8 j;
// u8 cc,bb;


ReceiveBit1=0; //GPGGA接收完成标志位清零
BACK_COLOR=WHITE;
//POINT_COLOR=WHITE;
POINT_COLOR=RED;
//if(lock=='A')
//{
if(use_sat[0]==0x30) //使用卫星数
{
LCD_ShowString(2,53,200,16,16,"weixingshu:");
LCD_ShowChar(90,53,use_sat[1],16,0); 
LCD_ShowChar(98,53,0x20,16,0); 
}
else
{
LCD_ShowString(2,53,200,16,16,"weixingshu:");
LCD_ShowChar(90,53,use_sat[0],16,0); 
LCD_ShowChar(98,53,use_sat[1],16,0); 
}
//}

}





void gps_disp(void) 
{
// u8 j;
// u8 cc,bb;

ReceiveBit=0; //GPRMC接收完成标志位清零
//ReceiveBit1=0; //GPGGA接收完成标志位清零
/* BACK_COLOR=WHITE;
//POINT_COLOR=WHITE;
POINT_COLOR=RED;

if(use_sat[0]==0x30) //使用卫星数
{
LCD_ShowString(2,53,200,16,16,"weixingshu:");
LCD_ShowChar(90,53,use_sat[1],16,0); 
LCD_ShowChar(98,53,0x20,16,0); 
}
else
{
LCD_ShowString(2,53,200,16,16,"weixingshu:");
LCD_ShowChar(90,53,use_sat[0],16,0); 
LCD_ShowChar(98,53,use_sat[1],16,0); 
}
*/
if(lock=='A') //定位状态   A有效定位     V无效定位
{
// Show_Str(50,70, "有效",16,0);
// LCD_ShowBigChar(50,160,'A');
POINT_COLOR=RED;
LCD_ShowString(2,70,200,16,16,"youxiaowei:");
LCD_ShowChar(90,70,0x41,16,0);
/* for(j=0;j<10;j++)
WD_bak[j]=WD[j];
for(j=0;j<11;j++)
JD_bak[j]=JD[j];     */
}

if(lock=='V')
{
POINT_COLOR=RED;
//Show_Str(50,70, "无效",16,0);
// LCD_ShowBigChar(50,160,'V');
LCD_ShowString(2,70,200,16,16,"wuxiaowei: ");
LCD_ShowChar(90,70,0x56,16,0);
}

// }
BACK_COLOR=BLACK;
POINT_COLOR=AUDIOCOLOUR;
//Show_Str(5,5, "时间",16,1);
/*计算东八区的时间*/
/* cc=time[0]-0x30;
bb=time[1]-0x30;
time_hour=cc*10+bb;
time_hour=time_hour+8;
if(time_hour>=24)
time_hour=time_hour-24;
timer.hour=time_hour;
timer.min=(time[2]-0x30)*10+time[3]-0x30;
timer.sec=(time[4]-0x30)*10+time[5]-0x30;       */

// }


//LCD_ShowBigChar(50,160,timer.hour);
//LCD_ShowBigChar(100,160,24);

//显示时分秒00:00:00
LCD_ShowString(2,121,200,16,16,"UTCtime:");
LCD_ShowChar(66, 121, time[0], 16, 0);
LCD_ShowChar(74, 121, time[1], 16, 0);
LCD_ShowChar(82, 121, 0x3a, 16, 0);
LCD_ShowChar(90, 121, time[2], 16, 0);
LCD_ShowChar(98, 121, time[3], 16, 0);
LCD_ShowChar(106, 121, 0x3a, 16, 0);
LCD_ShowChar(114, 121, time[4], 16, 0);
LCD_ShowChar(122, 121, time[5], 16, 0);


//显示年月日00-00-00
LCD_ShowString(2,138,200,16,16,"UTCdate:");
LCD_ShowChar(66, 138, date[4], 16, 0);
LCD_ShowChar(74, 138, date[5], 16, 0);
LCD_ShowChar(82, 138, 0x2D, 16, 0);
LCD_ShowChar(90, 138, date[2], 16, 0);
LCD_ShowChar(98, 138, date[3], 16, 0);
LCD_ShowChar(106, 138, 0x2D, 16, 0);
LCD_ShowChar(114, 138, date[0], 16, 0);
LCD_ShowChar(122, 138, date[1], 16, 0);




//if(lock=='A') //定位状态   A有效定位     V无效定位
//{

//地面速率
LCD_ShowString(2,156,200,16,16,"speed:");
LCD_ShowChar(50, 156, speed[0], 16, 0);
LCD_ShowChar(58, 156, speed[1], 16, 0);
LCD_ShowChar(66, 156, speed[2], 16, 0);
LCD_ShowChar(74, 156, speed[3], 16, 0);
LCD_ShowChar(82, 156, speed[4], 16, 0);



if(JD_a==0x45) //经度方向0x45就是E
// LCD_ShowBigChar(5,104,'E');
//Show_Str(5,104, "东经:",16,1);
{//LCD_ShowString(26,104,200,16,16,"E:");
LCD_ShowChar(26,104,0x45,16,0); //E
LCD_ShowChar(34,104,0x20,16,0); //
LCD_ShowChar(42,104,0x3A,16,0); //:
}
else if(JD_a==0x57) //经度方向0x57就是W
// LCD_ShowBigChar(5,104,'W');
//Show_Str(5,104, "西经:",16,1);
{
// LCD_ShowString(26,104,200,16,16,"W:");
LCD_ShowChar(26,104,0x57,16,0); //W
LCD_ShowChar(34,104,0x20,16,0); //
LCD_ShowChar(42,104,0x3A,16,0); //:
}
else
// Show_Str(5,104, "经度:",16,1);
// LCD_ShowBigChar(5,104,'J');
{
LCD_ShowChar(26,104,0x4A,16,0); //J
LCD_ShowChar(34,104,0x44,16,0); //D
LCD_ShowChar(42,104,0x3A,16,0); //:
}
LCD_ShowChar(50,104,JD[0],16,0);
LCD_ShowChar(58,104,JD[1],16,0);
LCD_ShowChar(66,104,JD[2],16,0);
LCD_ShowString(74,104,200,16,16,"°");
//LCD_ShowChar(74,104,0xA7,16,0);
LCD_ShowChar(82,104,JD[3],16,0);
LCD_ShowChar(90,104,JD[4],16,0);
LCD_ShowChar(98,104,JD[5],16,0);
LCD_ShowChar(106,104,JD[6],16,0);
LCD_ShowChar(114,104,JD[7],16,0);
LCD_ShowChar(122,104,JD[8],16,0);
LCD_ShowChar(130,104,JD[9],16,0);
LCD_ShowChar(138,104,JD[10],16,0);
LCD_ShowChar(146,104,0x27,16,0);


if(WD_a==0x4E)
//Show_Str(5,87, "北纬:",16,1);
//LCD_ShowBigChar(5,87,'N');
{
//LCD_ShowString(26,87,200,16,16,"N:");
LCD_ShowChar(26,87,0x4E,16,0); //N
LCD_ShowChar(34,87,0x20,16,0); //
LCD_ShowChar(42,87,0x3A,16,0); //:
}
else if(WD_a==0x53)
//Show_Str(5,87, "南纬:",16,1);
//LCD_ShowBigChar(5,87,'S');
{
//LCD_ShowString(26,87,200,16,16,"S:");
LCD_ShowChar(26,87,0x53,16,0); //S
LCD_ShowChar(34,87,0x20,16,0); //
LCD_ShowChar(42,87,0x3A,16,0); //:
}
else
//Show_Str(5,87, "纬度:",16,1);
// LCD_ShowBigChar(5,160,'W');
{
LCD_ShowChar(26,87,0x57,16,0); //W
LCD_ShowChar(34,87,0x44,16,0); //D
LCD_ShowChar(42,87,0x3A,16,0);
}
LCD_ShowChar(50,87,WD[0],16,0);
LCD_ShowChar(58,87,WD[1],16,0);
LCD_ShowString(66,87,200,16,16,"°");
//LCD_ShowChar(66,87,0xA7,16,0);
LCD_ShowChar(74,87,WD[2],16,0);
LCD_ShowChar(82,87,WD[3],16,0);
LCD_ShowChar(90,87,WD[4],16,0);
LCD_ShowChar(98,87,WD[5],16,0);
LCD_ShowChar(106,87,WD[6],16,0);
LCD_ShowChar(114,87,WD[7],16,0);
LCD_ShowChar(122,87,WD[8],16,0);
LCD_ShowChar(130,87,WD[9],16,0);
LCD_ShowChar(138,87,0x27,16,0);

//}
}


然后把数组里的东西显示出来,应该是没问题的。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-12 15:37:11 | 显示全部楼层
回复【32楼】正点原子:
---------------------------------
是N2243.45290//ddmm.mmmmm        E11412.053300 //dddmm.mmmmm           就是这种度分格式。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-12 19:14:26 | 显示全部楼层
那你度分格式的换算,对了么?
我们的例程换算是OK的,你可以参考下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-12 20:02:21 | 显示全部楼层
回复【35楼】正点原子:
---------------------------------
什么意思啊?我的经纬度是一个一个数字取回来的啊。。。不是一串取回来的
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-13 11:36:04 | 显示全部楼层
回复【36楼】我爱STM_32:
---------------------------------
N2243.45290
比如你这个数据,直接放到地图软件,肯定偏差好远的.
22.43.45290
如果地图软件要求是度,分格式,你得吧后面的.45290换算到.43里面去.
具体你百度下计算公式了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-7-14 20:03:27 | 显示全部楼层
回复【37楼】正点原子:
---------------------------------
嗯嗯,原子哥,我现在明白了,谢谢你了。。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
42
金钱
42
注册时间
2013-9-14
在线时间
7 小时
发表于 2013-9-19 20:42:34 | 显示全部楼层
回复【37楼】正点原子:
---------------------------------
原子哥号。。我的模块只有日期和时间,能搜到10个左右的卫星,,,但是没有可用的,,其他的信息也都是0,,,何解?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-19 22:16:59 | 显示全部楼层
GPS天线,换个方向试试,换个位置。对着天空,然后等待。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 22:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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