更新来晚了,作为考研水军确实比较忙,望原子哥见谅。GPS模块调试已接受到时间,经度和纬度信息,
话不多少,上图。
上图,显示的第一行就是维度的信息,第二行是经度信息 第三行是当前的时间。可以看出是北纬30.126564度,东经115.008267时间是北京时间20:12。
这个就是室外的天线,就这样放在窗台上了。还在下雨,不知道有没有影响。
废话说完了,现在来介绍代码:
首先得明白一点,不管是GPS还是GSM,这些都貌似很高级的玩意,其实就是串口操作而已。
u8 dis_buf[30]; //用来存放显示的缓存信息
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart_init(72,4800); //设置串口的波特率,这个必须和GPS发出数据的波特率匹配。
LCD_Init(); //液晶的初始化配置
LCD_Clear(BRRED); //将液晶的颜色设置为橘黄色
LCD_ShowString(0,0,"start!!"); //显示定位开始
这一步总算完成了,现在看看GPS发送的到底是什么玩意。根据资料上介绍,接受的信息格式为:
$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x
每行开头的字符都是‘$’,接着是信息类型,后面是数据,以逗号分隔开。一行完整的数据如下:fficeffice" />
$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,,,A*60
信息类型为:
GPGSV:可见卫星信息
GPGLL:地理定位信息
GPRMC:推荐最小定位信息
GPVTG:地面速度信息
GPGGA:GPS定位信息
GPGSA:当前卫星信息
将GPS用串口线和电脑连接,用串口助手监测数据,刚上电时候是这样的信息
$GPRMC,100526.398,V,0000.0000,N,00000.0000,E,,0.00,110912,,,N*60
$GPGGA,100527.398,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,100527.398,V,0000.0000,N,00000.0000,E,,0.00,110912,,,N*61
$GPGGA,100528.398,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4F
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,24,78,000,,04,68,000,46,13,59,000,36,23,51,000,21*74
$GPGSV,3,2,12,10,48,000,30,17,44,000,,20,28,000,14,02,23,000,*7D
$GPGSV,3,3,12,12,07,000,,01,03,000,,32,01,000,,07,00,000,*7B
$GPRMC,100528.398,V,0000.0000,N,00000.0000,E,,0.00,110912,,,N*6E
$GPGGA,100529.398,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
待到GPS搜到卫星的时候,发送的信息是这样的:
$GPGGA,101631.000,3012.6597,N,11500.8278,E,1,04,4.2,21.5,M,0.0,M,,0000*51
$GPGSA,A,3,04,13,10,02,,,,,,,,,5.5,4.2,3.6*34
$GPRMC,101631.000,A,3012.6597,N,11500.8278,E,0.00,253.44,110912,,,A*69
$GPGGA,101632.000,3012.6597,N,11500.8278,E,1,04,4.2,21.5,M,0.0,M,,0000*52
$GPGSA,A,3,04,13,10,02,,,,,,,,,5.5,4.2,3.6*34
$GPRMC,101632.000,A,3012.6597,N,11500.8278,E,0.00,253.44,110912,,,A*6A
$GPGGA,101633.000,3012.6597,N,11500.8278,E,1,04,4.2,21.5,M,0.0,M,,0000*53
$GPGSA,A,3,04,13,10,02,,,,,,,,,5.6,4.2,3.6*37
$GPGSV,3,1,09,10,80,023,38,04,53,034,51,02,48,314,35,17,41,127,07*7E
然后观察发过来的数据,根据资料上的介绍,咱们就可以操作它了。首先是GPRMC,也就是最小推荐信息,
$GPRMC,101632.000,A,3012.6597,N,11500.8278,E,0.00,253.44,110912,,,A*6A
得到这个数据后判断其第三个逗号后面的就是维度,后面一位是南北纬,接着就是经度,接着是东西经。这样就可以
把经纬度定出来了。 |