1、GPS模块介绍:选择的是Trimble(如下图)
和jackwang聊天时有感而发的基于FUJITSU EasyKit 的GPS设计
2楼
2、硬件设计:
GPS的电源(红线)连接FUJITSU的5V,黑线连接地线,输出线连接管脚16(P04),串口波特率设置为:9600,管脚15(P03作为UART-Tx的监测输出)
GPS的电源(红线)连接FUJITSU的5V,黑线连接地线,输出线连接管脚16(P04),串口波特率设置为:9600,管脚15(P03作为UART-Tx的监测输出)
4楼
3、GPS数据格式介绍
一、Global Positioning System Fix Data(GGA)GPS定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)
例如:$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,,*65
二、 Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<4> 纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节,前面的0也将被传输)
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前面的0也将被传输)
<11> 磁偏角方向,E(东)或W(西)
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
数据的的校验是异或校验,以¥ 为开头,*为结尾的异或!
我们可以从GPRMC中读取GPS时间,也就是当前时间(转化北京+8),和定位的位置信息!!
一般用的就是以上这两个数据,想了解更多的GPS输出数据介绍,百度一下:GPS 数据格式
一、Global Positioning System Fix Data(GGA)GPS定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)
例如:$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,,*65
二、 Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<4> 纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节,前面的0也将被传输)
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前面的0也将被传输)
<11> 磁偏角方向,E(东)或W(西)
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
数据的的校验是异或校验,以¥ 为开头,*为结尾的异或!
我们可以从GPRMC中读取GPS时间,也就是当前时间(转化北京+8),和定位的位置信息!!
一般用的就是以上这两个数据,想了解更多的GPS输出数据介绍,百度一下:GPS 数据格式
6楼
GPS数据输出如下::
以上就是GPS定位以及时间信息,数据解析:
0A_0A_1D_0A_3B_28 就是年月日时分秒
0A:10年
0A:10月
1D:29号
0A:10点(已经转化为北京时间)
3B: 59分
28:40秒
经度半球:E (东经)
经度:11437.3790
纬度半球:N(北半球)
纬度:3802.6995
海拔:000030(64米) 代表的是我在石家庄的定位信息
目前就做到这里,下次再做一个屏幕显示的,嵌入一个地图,这就是现在的GPS定位了!!
(注意:有一个BUG:由于本人的粗心,上面的串口输出时把 经度半球:E 与 纬度半球:N输出反了,不好意思)
以上就是GPS定位以及时间信息,数据解析:
0A_0A_1D_0A_3B_28 就是年月日时分秒
0A:10年
0A:10月
1D:29号
0A:10点(已经转化为北京时间)
3B: 59分
28:40秒
经度半球:E (东经)
经度:11437.3790
纬度半球:N(北半球)
纬度:3802.6995
海拔:000030(64米) 代表的是我在石家庄的定位信息
目前就做到这里,下次再做一个屏幕显示的,嵌入一个地图,这就是现在的GPS定位了!!
(注意:有一个BUG:由于本人的粗心,上面的串口输出时把 经度半球:E 与 纬度半球:N输出反了,不好意思)
7楼
但是FUJITSU EasyKit不支持系统的嵌入!!目前也只能做到这里了!!不过可以从得到的经纬度,在google里面输入得出的经纬度就能得到当前的位置!!
回复
有奖活动 | |
---|---|
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? |
打赏帖 | |
---|---|
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 | |
【换取手持数字示波器】+线性调整器理论知识分享被打赏40分 | |
放大↔震荡被打赏50分 | |
【换取手持数字示波器】RTduino驱动ssd1306+sht31温湿度计被打赏40分 | |
【换取手持数字示波器】称植国产开源TobudOS到雅特力AT32F425被打赏40分 | |
【分享评测,赢取加热台】+Telink-泰凌微电子B91点灯篇被打赏20分 | |
【换取手持数字示波器】+精英板驱动LCD屏被打赏50分 | |
【换取手持数字示波器】+DFR0216全彩灯带WS2812示例分享被打赏50分 |