OpenEdv-开源电子网

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

ATK-NEO-6M GPS模块资料--ALIENTEK STM32开发板配件

[复制链接]

0

主题

2

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-1-17
在线时间
7 小时
发表于 2015-1-25 17:02:00 | 显示全部楼层
原子哥,GPS模块,我想用串口2接收数据处理后然后串口1将其发送到串口,我修改完了之后,程序不报错。我将GPS正确连接后不反馈任何信息。我自己调试发现main函数中while((Ublox_Cfg_Rate(1000,1)!=1)||key)会卡死在这里面。求指点

ALIENTEK MINISTM32 扩展实验23.1 ATK-NEO-6M GPS模块实验(串口1版本).rar

564.85 KB, 下载次数: 325

正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-1-17
在线时间
7 小时
发表于 2015-1-25 17:03:03 | 显示全部楼层
回复【101楼】老鼠爱大米:
---------------------------------
打错了点东西,用串口1发给串口调试助手。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-1-26 00:40:08 | 显示全部楼层
回复【101楼】老鼠爱大米:
---------------------------------
 默认的例程就是串口2接收。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-1-30
在线时间
0 小时
发表于 2015-1-30 22:03:38 | 显示全部楼层
能将解析的结果保存在SD卡上吗,用的是MINISTM32
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-1-30 22:19:38 | 显示全部楼层
回复【104楼】feng92:
---------------------------------
当然没问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-1-30
在线时间
0 小时
发表于 2015-1-31 18:59:40 | 显示全部楼层
能用你写的SD卡实验实现吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-2-1 11:56:33 | 显示全部楼层
回复【106楼】feng92:
---------------------------------
得改代码.自己修改,可以的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2014-9-25
在线时间
23 小时
发表于 2015-2-4 10:47:43 | 显示全部楼层
回复【100楼】正点原子:
---------------------------------
while(1) //得到整数和小数的长度
{
if(*p=='-'){mask|=0X02;p++;}//是负数
if(*p==','||(*p=='*'))break;//遇到结束了
if(*p=='.'){mask|=0X01;p++;}//遇到小数点了
else if(*p>'9'||(*p<'0')) //有非法字符
{
ilen=0;
flen=0;
break;
}
if(mask&0X01)flen++;
else ilen++;
p++;
}
这里面  如果判断为'-'号if(*p=='-'){mask|=0X02;p++;} p++,指向下一个字节,但是后面还有一个p++,判断到小数点也是一样的,这样相当于p加了两下,就会漏掉一个数据,求解,原子哥
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-3-17
在线时间
0 小时
发表于 2015-3-17 16:33:16 | 显示全部楼层
有原理图么?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-3-17
在线时间
0 小时
发表于 2015-3-17 16:34:32 | 显示全部楼层
回复【109楼】洋槐朵朵笑:
---------------------------------
@原子哥
回复 支持 反对

使用道具 举报

5

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-11-21
在线时间
7 小时
发表于 2015-3-17 19:48:58 | 显示全部楼层
请问有串口一驱动版本的程序吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-3-18 00:06:50 | 显示全部楼层
回复【111楼】四叶草:
---------------------------------
附件就有啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-11-21
在线时间
7 小时
发表于 2015-3-18 10:22:04 | 显示全部楼层
回复【112楼】正点原子:
---------------------------------
回复【112楼】正点原子:
---------------------------------
但是,我想要的是战舰版的程序
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-3-18 22:48:06 | 显示全部楼层
回复【113楼】四叶草:
---------------------------------
请自行移植
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

201

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2015-4-26
在线时间
173 小时
发表于 2015-5-3 11:07:56 | 显示全部楼层
请问有没有GPS测试的视频教程?
回复 支持 反对

使用道具 举报

48

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2013-6-27
在线时间
17 小时
发表于 2015-5-26 20:41:38 | 显示全部楼层
原子哥,这个GPS的PPS的精度是多少?
PPS这个脚的频率是不是可以设置的,还是脉冲幅度可以设置
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-5-27 00:51:14 | 显示全部楼层
20ns
频率可以设置,幅度不行。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-6-11
在线时间
0 小时
发表于 2015-6-11 22:44:42 | 显示全部楼层
原子大哥,该GPS模块能用于NAZE 32飞控上吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-6-12 22:54:19 | 显示全部楼层
回复【118楼】about888:
---------------------------------
可以的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-6-11
在线时间
0 小时
发表于 2015-6-13 20:57:35 | 显示全部楼层
回复【119楼】正点原子:
---------------------------------
谢谢原子大哥!昨天下单买了NAZE32的第4版,原来想和【GY-NEO6MV2新款飞控GPS模块 带EEPROM MWC APM2.5飞控 大天线】一起买的,因为旺旺信泰微电子,他们回答是卖货的,不懂技术,叫我自己看资料。资料全是英文,头大了。只好等原子哥的指导。再谢谢原子哥!!我明天下单买。更希望得到原子哥的指点。
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-6-18 11:11:19 | 显示全部楼层
原子哥  我想做一个GPS干扰机  我的方案是  先利用你的这个接收模块解调出基带信号  然后再后面和载波调制发射出去 最后在接收一下  可以在液晶上显示出数据已发生变化  说明干扰发成功了  你看这个方案可行吗?最主要的是  你的这个接收模块解调出来的是GPS的基带信号吗?而且你这个接收模块解调出来的是ascll码 不是C/A码?恳请原子哥解答一下 谢谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-6-19 00:11:03 | 显示全部楼层
回复【121楼】陈天富:
---------------------------------
估计没戏啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-6-19 10:19:33 | 显示全部楼层
回复【122楼】正点原子:
---------------------------------
为什么呢?能详细的讲解一下吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-6-20 00:16:08 | 显示全部楼层
回复【123楼】陈天富:
---------------------------------
不提供基带信号
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-6-23 09:10:31 | 显示全部楼层
回复【124楼】正点原子:
---------------------------------
哦 那我可以在此基础上自己做个基带信号
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2013-4-7
在线时间
29 小时
发表于 2015-6-25 15:47:24 | 显示全部楼层
我想用这个GPS模块得到速度,可以吗?
想做个测试,把它装到车上,是不是可以像手机导航一样,得到车的速度?
应该没有问题吧,它传的信息里面应该有速度的信息吧?!
天生我才必有用,千金散尽还复来!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-6-25 23:15:36 | 显示全部楼层
回复【126楼】wyming210:
---------------------------------
可以的
有速度信息。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-6-28 13:16:13 | 显示全部楼层
原子哥  我再问一个问题  从这个接收模块出来后没有进单片机之前的这些ASCII码定位信息是不是相当于GPS信号中的数据码(D码)?   那么这些ASCII码定位信息是不是也是按照GPS专门的电文格式、结构排列的?要想修改这些ASCII码信息是不是首先搞明白这些专门的GPS电文结构?      望告知多谢了!    还有这些出来的ASCII码码速率是多少呢?是50bps吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-6-28 22:24:10 | 显示全部楼层
回复【128楼】陈天富:
---------------------------------
就是NMEA0183协议,你看我们教程就可以了解了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-6-30 08:42:53 | 显示全部楼层
回复【129楼】正点原子:
---------------------------------
哦  那在哪个芯片里或者软件里可以修改这些ASCII信息呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-7-1 00:24:34 | 显示全部楼层
回复【130楼】陈天富:
---------------------------------
无法修改。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-7-1 11:50:19 | 显示全部楼层
回复【131楼】正点原子:
---------------------------------
在FPGA里也不行吗?就修改一下 经度 纬度 时间信息这三个 就行了
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-6-11
在线时间
0 小时
发表于 2015-7-3 16:40:23 | 显示全部楼层
    原子哥:按照你的建议,我在信泰微电子买了一块【GY-NEO6MV2新款飞控GPS模块 带EEPROM MWC APM2.5飞控 大天线】收货后装机,GPS搜不到星。我不会编程,只是使用客户。故障如下,请求帮助:
GPS锁不住星
    我用的是NAZE32飞控板,GPS是U-BLOX NEO-6M模块,450机架,重量是1.2Kg。按模友之家泡泡老师的视频教程,PWM接收,有GPS和超声定高。装好后能飞,超声定高正常。GPS在CF软件中左上角是绿色的,正常。比特率设定是38400,品牌选UBLOX。打开GPS卫星信息这一列,左边GPS栏中,3D Fix是红色的False,星数是0。右边的强度条中有绿色的强度变换信号交替出现,但是不能停留固定。所以星数是0。SETUP中的GPS项,3D Fix也是红色的False,大概是3D定位失败。模板中的蓝灯长亮,在室外环境中也不闪。请看附图。




 






  请问是什么原因?

回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-6-11
在线时间
0 小时
发表于 2015-7-4 21:49:52 | 显示全部楼层
回复【133楼】about888:
---------------------------------
GPS锁不住星问题解决了。
   详细看了该模块的问题解答,原来是信号强度不够,前10米的20多层酒楼挡住了信号。拿着4轴朝开阔的十字路口走,有几分钟,模块的蓝灯一闪一闪了,有时又长亮,不稳定。当稳定的闪动时,往回走,走到原地仍然在闪。连接CF一看,星的数量和强度都在变化,少于4个星就定位失败,3D Fix变成红色。因此。该模块搜星速度较慢,其说明书说:环境不好时的冷启动要十几分钟(所以引起我的错判),但是,数据可以存储在模块里30分钟,所以回到原点时仍然有星,这就是热启动。
    说出来,看看对后来者有否帮助。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-7-5 22:38:52 | 显示全部楼层
回复【134楼】about888:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-8-16
在线时间
2 小时
发表于 2015-7-20 09:43:19 | 显示全部楼层

我现在选一个gps模块 想用 内置天线  就是 那种陶瓷天线    不知道信号怎么样,  我的设备上不想用 外置  的天线 ,,比如 在室内 的 或者在 设备壳子里   工厂 厂房里 什么的

回复 支持 反对

使用道具 举报

4

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-10-8
在线时间
41 小时
发表于 2015-7-21 09:54:03 | 显示全部楼层
原子哥,我是武汉的,为什么UTC时间不准啊,和地域有关吗,这需要修改哪里啊
321CF76A70733C135170A6E9AC96DC5C.png
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-7-21 23:51:22 | 显示全部楼层
回复【137楼】nice把妹:
---------------------------------
你知道什么是UTC时间么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2013-6-27
在线时间
17 小时
发表于 2015-7-28 15:53:46 | 显示全部楼层
回复【69楼】正点原子:
---------------------------------
c3的容值是多少,我卸下来放没见了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-7-29 00:19:54 | 显示全部楼层
回复【139楼】can123dao:
---------------------------------
原理图有
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2013-6-27
在线时间
17 小时
发表于 2015-7-29 20:38:47 | 显示全部楼层
回复【140楼】正点原子:
---------------------------------
原理图上是8.2.
8.2p么?
手上没这个值的,有什么可替代的推荐值没有呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-7-30 22:08:29 | 显示全部楼层
回复【141楼】can123dao:
---------------------------------
8.2PF
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2013-6-27
在线时间
17 小时
发表于 2015-8-5 17:24:36 | 显示全部楼层
原子哥,在移植你的程序到6410上去,但遇到些问题望帮帮:
几个配置GPS的函数,比如Ublox_Cfg_Rate,在设置好配置消息结构体后,通过DMA直接将这个结构体就通过DMA发到串口上去了。
我在LINUX下调用的write直接写ttySAC1,失败。是什么原因呢。
我的修改如下
[mw_shl_code=c,true]unsigned char Ublox_Cfg_Rate(int fd, unsigned short int measrate,unsigned char reftime) { _ublox_cfg_rate *cfg_rate=(_ublox_cfg_rate *)Tx_Buf; if(measrate<200)return 1; //小于200ms,直接退出 cfg_rate->header=0X62B5; //cfg header cfg_rate->id=0X0806; //cfg rate id cfg_rate->dlength=6; //数据区长度为6个字节. cfg_rate->measrate=measrate;//脉冲间隔,us cfg_rate->navrate=1; //导航速率(周期),固定为1 cfg_rate->timeref=reftime; //参考时间为GPS时间 Ublox_CheckSum((unsigned char*)(&cfg_rate->id),sizeof(_ublox_cfg_rate)-4,&cfg_rate->cka,&cfg_rate->ckb); if(write(fd, (unsigned char *)cfg_rate, sizeof(_ublox_cfg_rate)) != sizeof(_ublox_cfg_rate))return 1; return Ublox_Cfg_Ack_Check(fd); }[/mw_shl_code]
结构体也做了对齐的
[mw_shl_code=c,true]#define PACKED __attribute__( ( packed, aligned( 1 ) ) )[/mw_shl_code] [mw_shl_code=c,true]typedef struct { unsigned short int header; //cfg header,固定为0X62B5(小端模式) unsigned short int id; //CFG RATE ID:0X0806 (小端模式) unsigned short int dlength; //数据长度 unsigned short int measrate; //测量时间间隔,单位为ms,最少不能小于200ms(5Hz) unsigned short int navrate; //导航速率(周期),固定为1 unsigned short int timeref; //参考时间:0=UTC Time;1=GPS Time; unsigned char cka; //校验CK_A unsigned char ckb; //校验CK_B }PACKED _ublox_cfg_rate; [/mw_shl_code]
我的write函数返回值不对的,不等于结构体大小。望指点一下。



回复 支持 反对

使用道具 举报

48

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2013-6-27
在线时间
17 小时
发表于 2015-8-5 20:42:15 | 显示全部楼层
这个写的问题解决了:是在read的基础上一步步改的,结果要write而open没有给write的权限。
但是Ublox_Cfg_Ack_Check();找不到同步码。

还有另外一个问题,就是解析GPRMC时,头三条能解析出来,后面好像一直就截不到GPRMC这个字符串了;但原始数据是正常接收的。不知道是什么原因。相关代码,有点多,没贴完,帮忙看一下,谢谢。我感觉可能是我读数据的方式有些问题。
[mw_shl_code=c,true]#define ORG_GPS 1 #define FUNC_QUIT 8 #define PARSE 9 #define Max_Tx_Len 200 unsigned char Tx_Buf[Max_Tx_Len]; #define PACKED __attribute__( ( packed, aligned( 1 ) ) ) typedef struct { unsigned short int header; //cfg header,固定为0X62B5(小端模式) unsigned short int id; //CFG RATE ID:0X0806 (小端模式) unsigned short int dlength; //数据长度 unsigned short int measrate; //测量时间间隔,单位为ms,最少不能小于200ms(5Hz) unsigned short int navrate; //导航速率(周期),固定为1 unsigned short int timeref; //参考时间:0=UTC Time;1=GPS Time; unsigned char cka; //校验CK_A unsigned char ckb; //校验CK_B }PACKED _ublox_cfg_rate; int read_GPS_datas(int fd, char *rcv_buf) { unsigned char buf[1]; int ret = 1; int pos = 0; int rval; while(ret){ ret = read(fd, buf, 1); if(ret == -1){ rval = 0; break; } else if(ret>0){ rcv_buf[pos] = buf[0]; if(rcv_buf[pos-1] == '\n' && rcv_buf[pos-2] == '\r'){ pos = 0; rval = 1; break; } else pos++; } } return rval; } unsigned char NMEA_Comma_Pos(unsigned char *buf, unsigned char x) { unsigned char *p = buf; while(x) { if(*buf == '*' || *buf < ' ' || *buf > 'z') return 0XFF; if(*buf == ',') x--; buf++; } return buf-p; } unsigned int NMEA_Pow(unsigned char m,unsigned char n) { unsigned int result=1; while(n--)result*=m; return result; } int NMEA_Str2num(unsigned char *buf,unsigned char*comma_bit) { unsigned char *p=buf; unsigned int ires=0,fres=0; unsigned char ilen=0,flen=0,i; unsigned char mask=0; int res; while(1) //得到整数和小数的长度 { if(*p=='-'){mask|=0X02;p++;}//是负数 if(*p==','||(*p=='*'))break;//遇到结束了 if(*p=='.'){mask|=0X01;p++;}//遇到小数点了 else if(*p>'9'||(*p<'0')) //有非法字符 { ilen=0; flen=0; break; } if(mask&0X01)flen++; else ilen++; p++; } if(mask&0X02)buf++; //去掉负号 for(i=0;i<ilen;i++) //得到整数部分数据 { ires+=NMEA_Pow(10,ilen-1-i)*(buf-'0'); } if(flen>5)flen=5; //最多取5位小数 *comma_bit=flen; //小数点位数 for(i=0;i<flen;i++) //得到小数部分数据 { fres+=NMEA_Pow(10,flen-1-i)*(buf[ilen+1+i]-'0'); } res=ires*NMEA_Pow(10,flen)+fres; if(mask&0X02)res=-res; return res; } unsigned char Ublox_Cfg_Ack_Check(int fd) { unsigned char buf[200]; unsigned short int len = 0, i; unsigned char rval = 0; if(read_GPS_datas(fd, buf)){ len = sizeof(buf); for(i =0; i < len; i++){ if(buf == 0XB5) break; // } if(i == len) rval = 2; //not found sync char else if (buf[i+3] == 0X00) rval = 3;//receive NAK else rval = 0; } else rval = 1; return rval; } unsigned char Ublox_Cfg_Rate(int fd, unsigned short int measrate,unsigned char reftime) { _ublox_cfg_rate *cfg_rate=(_ublox_cfg_rate *)Tx_Buf; if(measrate<200)return 1; //小于200ms,直接退出 cfg_rate->header=0X62B5; //cfg header cfg_rate->id=0X0806; //cfg rate id cfg_rate->dlength=6; //数据区长度为6个字节. cfg_rate->measrate=measrate;//脉冲间隔,us cfg_rate->navrate=1; //导航速率(周期),固定为1 cfg_rate->timeref=reftime; //参考时间为GPS时间 Ublox_CheckSum((unsigned char*)(&cfg_rate->id),sizeof(_ublox_cfg_rate)-4,&cfg_rate->cka,&cfg_rate->ckb); if(write(fd, (unsigned char *)cfg_rate, sizeof(_ublox_cfg_rate)) != sizeof(_ublox_cfg_rate)){printf("x\r\n");return 1;} return Ublox_Cfg_Ack_Check(fd); } void GPS_original_signal(int fd) { char rcv_buf[2048]; while (1) { bzero(rcv_buf,sizeof(rcv_buf)); { if (read_GPS_datas(fd,rcv_buf)) { printf("%s",rcv_buf); } } } } void NMEA_Parse(int fd) { unsigned char rcv_buf[256]; unsigned char *buf_head; unsigned char comma_pos; unsigned char comma_bit; int temp; float rs; nmea_msg gpsx; while(1){ bzero(rcv_buf, sizeof(rcv_buf)); if(read_GPS_datas(fd, rcv_buf)){ buf_head = (unsigned char *)strstr((const char *)rcv_buf, "GPRMC"); if(buf_head){ comma_pos = NMEA_Comma_Pos(buf_head,1); if(comma_pos != 0XFF){ temp=NMEA_Str2num((buf_head + comma_pos),&comma_bit); gpsx.utc.hour=temp/1000000; gpsx.utc.min=(temp%1000000)/10000; gpsx.utc.sec=(temp%10000)/100; gpsx.utc.msec=temp%100; printf("%02d:%02d:%02d.%02d\r\n",gpsx.utc.hour,gpsx.utc.min,gpsx.utc.sec,gpsx.utc.msec); } } } } } void print_prompt(void) { printf ("Select what you want to read:\n"); printf ("1 : Original GPS datas\n"); printf ("8 : Quit\n"); printf ("9 : Parse\n"); printf (">"); } void func_GPS(int fd) { int flag_func_run; int flag_select_func; ssize_t ret; flag_func_run = FUNC_RUN; while (flag_func_run == FUNC_RUN) { print_prompt(); // print select functions scanf("%d",&flag_select_func); // user input select getchar(); // get ENTER <LF> switch(flag_select_func) { case ORG_GPS : {GPS_original_signal(fd); break; } case FUNC_QUIT : { flag_func_run = FUNC_NOT_RUN; printf("Quit GPS function. byebye\n"); break; } case PARSE : {NMEA_Parse(fd); break; } default : { printf("please input your select use 1 to 8\n"); } } } } int main(void) { int fd; unsigned char sta; fd = open("/dev/ttySAC1", O_RDWR); if (fd == -1){ printf("open device %s error\n",DEVICE_TTYS); } else{ init_ttySAC(fd,38400); // init device if(Ublox_Cfg_Rate(fd, 400, 1) != 0) printf("cfg failed\r\n"); func_GPS(fd); if (close(fd)!=0) printf("close device %s error",DEVICE_TTYS); } return 0; } [/mw_shl_code]

回复 支持 反对

使用道具 举报

4

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-10-8
在线时间
41 小时
发表于 2015-8-9 10:53:26 | 显示全部楼层
回复【138楼】正点原子:
---------------------------------
这么晚了还回复,已解决谢谢,是和世界时间相差8个小时
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-12-2
在线时间
0 小时
发表于 2015-9-2 14:23:01 | 显示全部楼层
原子哥,我做个GPS模块不用游园天线只是用无源陶瓷模块,请问怎么接线?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-9-3 23:24:32 | 显示全部楼层
回复【146楼】cocochen:
---------------------------------
直接用我们的模块即可,接串口就OK了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-9-7 10:39:58 | 显示全部楼层
原子哥    我想用自己做的STM32F103ZET6的最小系统    带这个GPS接收模块   不用串口不用上微机    就需要能下载代码能驱动这个模块就可以了    就可以了   这个模块我已经在您的淘宝店上买了    那么最小系统需要用到哪几个模块呢?请求原子哥解答一下    万分感谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
 楼主| 发表于 2015-9-7 20:40:01 | 显示全部楼层
回复【148楼】陈天富:
---------------------------------
你有最小系统板就够了。
最小系统,需求:1,B0,B1的设置电路;2,复位电路;3,晶振。
其他都是你自己选配了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-6-18
在线时间
2 小时
发表于 2015-9-9 12:18:02 | 显示全部楼层
回复【149楼】正点原子:
---------------------------------
好的 谢谢哦
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 04:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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