中级会员
 
- 积分
- 457
- 金钱
- 457
- 注册时间
- 2015-8-16
- 在线时间
- 116 小时
|

楼主 |
发表于 2016-8-9 14:26:35
|
显示全部楼层
//GPS状态:0,未定位;1,非差分定位;2,差分定位;6,正在估算.
void Gps_State(void)
{
u16 i,rxlen;
delay_ms(1);
if(USART3_RX_STA&0X8000) //接收到一次数据了
{
rxlen=USART3_RX_STA&0X7FFF; //得到数据长度
for(i=0;i<rxlen;i++)
{GPS_TX_BUF=USART3_RX_BUF;}
USART3_RX_STA=0; //清除接收标志位,启动下一次接收
GPS_TX_BUF=0; //自动添加结束符
GPS_Analysis(&gpsx,(u8*)GPS_TX_BUF);//分析字符串
if( gpsx.gpssta == 0)//未定位
{
OLED_ShowString(0,0,"NO",16,1);
OLED_Refresh_Gram();
}
else if(gpsx.gpssta == 1||gpsx.gpssta == 2)//定位成功
{
OLED_ShowString(0,20,"OK",16,1);
OLED_Refresh_Gram();
}
else
{
OLED_ShowString(31,0,"calculate...",16,1);//正在估算
OLED_Refresh_Gram();
}
OLED_PutNum(31,40,gpsx.gpssta,16,1);
OLED_Refresh_Gram();
}
}
原子哥,我自己琢磨了,然后觉得应该可以通过以上这样的方式来判断是否定位成功 |
|