|
|
我丛书中抄了一段代码在Uno中可以运行,但是会慢10多秒。在mega上可以很准确,但是开机自检不了,要拔掉GPS的TXD一会才可以运行。麻烦老鸟帮我看看。
#include <TinyGPS.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);//定义LCD引脚定义
TinyGPS gps;
void getgps(TinyGPS &gps);
void setup()
{
Serial.begin(4800);//GPS通信波特率
lcd.begin(16,2);//LCD定义
}
void getgps(TinyGPS &gps)//抓取GPS数据
{
int year,a,t;
byte month,day,hour,minute,second,hundredths;
gps.crack_datetime(&year,&month,&day,&hour,&minute,&second,&hundredths);
hour=hour+8;//时区校正
if(hour>23)
{
hour=hour-24;
}
lcd.setCursor(0,0);//显示日期和时间
lcd.print("GPS Time:");
lcd.setCursor(4,1);
if (hour<10)
{
lcd.print("0");
}
lcd.print(hour,DEC);
lcd.print(":");
if(minute<10)
{
lcd.print("0");
}
lcd.print(minute,DEC);
lcd.print(":");
if(second<10)
{
lcd.print("0");
}
lcd.print(second,DEC);
}
void loop()
{
byte a;
if(Serial.available()>0)//如果串口有数据
{
a = Serial.read();//获得一个字节的数据
if(gps.encode(a))//如果有效数据
{
getgps(gps);//抓取数据并显示在LCD
}
}
} |
|