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里面输入得出的经纬度就能得到当前的位置!!
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |