E=东W=西Р字段16:校验值Р$GPGGAР例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1FР字段0:$GPGGA,语句ID,表明该语句为GGA,GPS定位信息Р字段1:UTC 时间,hhmmss.sss,时分秒格式Р字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)Р字段3:纬度N(北纬)或S(南纬)Р字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)Р字段5:经度E(东经)或W(西经)Р字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算Р字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)Р字段8:HDOP水平精度因子(0.5 - 99.9)Р字段9:海拔高度(-9999.9 - 99999.9)Р字段10:地球椭球面相对大地水准面的高度Р字段11:差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)Р字段12:差分站ID号0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)Р字段13:校验值Р根据语句最大长度,程序中定义了一个96字节的缓冲区,一次接收一条GPS语句之后再进行解码,即根据需要读取相关数据。需要注意的是中国所在的时区是东八区,所以解码得到的小时数据需要加8才是相应的北京时间。Р4.2 LCD显示РLCD显示采用了部分刷屏的设计,即只刷新需要更新的区域,这样节省了大量资源。Р在显示模拟时钟的时候,需要刷新较大面积的区域。为了避免直接操作LCD时LCD闪烁和显示错位的问题。程序中开辟了显示缓冲区,对模拟时钟指针的操作在缓冲区里进行,操作完成LCD直接显示缓存区的数据。Р基于NOKIA5110液晶屏,做了对应的UI。РGPS界面,具体介绍参见3.3节。