求助arduino接ublox neo-6MGPS
为什么用串口调试打开9600波特率没有读数啊?求教连接:
arduino GPS
3.3V VCC
RX TX
GND GND
代码:
#include <Arduino.h>
char Latitude;
char Latitude_N_or_S;
char Longitude;
char Longitude_E_or_W;
char Altitude;
char Speed;
char Uart_Buffer;
char GPS_COM; //存放当前GPS指令名称,例如:$GPGGA
//char RX_GPGGA_Buffer;
char RX_GPRMC_Buffer;
unsigned char RX_Count;
bool Flag_GPGGA_OK;
bool Flag_GPRMC_OK;
bool Flag_GPS_OK;
void setup()
{ Flag_GPGGA_OK = 0;
RX_Count = 0;
Uart_Buffer = 0;
Serial.begin(9600); //设置波特率9600和GPS模块一致
}
void loop()
{
unsigned char i = 0;
while(Serial.available() > 0)
{
Uart_Buffer = Serial.read(); //获取GPS信息
//Serial.write(Uart_Buffer); //测试使用
if(Uart_Buffer == '$')
{
RX_Count = 0;
//Flag_GPS_OK = 0;
}
if(RX_Count < 6)
{
GPS_COM = Uart_Buffer;
}
else if( GPS_COM == '$' && GPS_COM == 'G'&& GPS_COM == 'P'&& GPS_COM == 'R'&& GPS_COM == 'M'&& GPS_COM == 'C' ) //获取GPRMC数据
{
RX_GPRMC_Buffer = Uart_Buffer;
if(RX_GPRMC_Buffer == '\n')
{
Flag_GPRMC_OK = 1;
}
else
{
RX_Count++;
}
}
else if( GPS_COM == '$' && GPS_COM == 'G'&& GPS_COM == 'P'&& GPS_COM == 'G'&& GPS_COM == 'L'&& GPS_COM == 'L' ) //获取GPGLL数据
{
if(Uart_Buffer == '\n')
{
Flag_GPS_OK = 1; //一组数据都是最后一帧是GPGLL,接收完GPGLL说明接收数据完成
}
}
}
if(Flag_GPS_OK == 1)
{
Flag_GPS_OK = 0;
Serial.print("**\n");
if(Flag_GPGGA_OK == 1)
{
}
if(Flag_GPRMC_OK == 1)
{
Serial.print("Latitude: ");
Latitude_N_or_S = RX_GPRMC_Buffer; //纬度
Serial.print(Latitude_N_or_S);
Serial.print(" ");
for(i = 0;i<10;i++)
{
//if(i==4) continue;
Latitude=RX_GPRMC_Buffer;
Serial.print(Latitude);
}
Serial.print("\n");
Serial.print("Longitude: ");
Longitude_E_or_W = RX_GPRMC_Buffer; //经度
Serial.print(Longitude_E_or_W);
Serial.print(" ");
for(i = 0;i<11;i++)
{
//if(i==6) continue;
Longitude=RX_GPRMC_Buffer;
Serial.print(Longitude);
}
Serial.print("\n");
Serial.print("Speed: "); //速度
for(i=0;i<5;i++)
{
Speed=RX_GPRMC_Buffer;
Serial.print(Speed);
}
Serial.print(" m/s");
Serial.print("\n");
}
}
} 1.确认不上gps的时候能否工作正常
2.gps是不是占用你的串口了?
你好,问题解决了吗?我也遇到了这个问题,请指点一下 78-82为什么是空语句? 1、单独把GPS模块通过usb-ttl连接起来,电脑用串口软件应该能读到数据。
2、把GPS和Arduino连接起来,Arduino必须用软串口,硬件0-1引脚被系统占用了的。
3、如果还不行,请交换一下GPS连到Arduino的TX-RX引线。
Ps:不论GPS是否有信号,它都会输出一些固定格式的信息。
Pss:请一定注意波特率的问题。
页:
[1]