Re: проблемы с GPS модулем ZX4125P
Добавлено: Чт май 13, 2010 21:48:07
gwiktor
Всем привет, нужна помощь с кодом. Купил модуль GPS LR9552 Leadtek, прицепил SD карту памяти через ATmega32 и пишу в файлы поток символов с модуля. Логгер функционирует, хочу прицепить индикатор, но не могу сообразить как обрабатывать поток данных.
Повторяются следующие строки:
$GPRMC,065025.000,A,5124.8094,N,04545.3201,E,0.00,61.26,090510,,,A*53
$GPVTG,61.26,T,,M,0.00,N,0.0,K,A*3E
$GPGGA,065026.000,5124.8094,N,04545.3201,E,1,05,2.6,157.0,M,-0.9,M,0.0,0000*64
$GPRMC,065026.000,A,5124.8094,N,04545.3201,E,0.00,61.26,090510,,,A*50
$GPVTG,61.26,T,,M,0.00,N,0.0,K,A*3E
$GPGGA,065027.000,5124.8094,N,04545.3201,E,1,06,1.7,157.0,M,-0.9,M,0.0,0000*64
$GPRMC,065027.000,A,5124.8094,N,04545.3201,E,0.00,61.26,090510,,,A*51
$GPVTG,61.26,T,,M,0.00,N,0.0,K,A*3E
$GPGGA,065028.000,5124.8094,N,04545.3201,E,1,05,2.6,157.0,M,-0.9,M,0.0,0000*6A
$GPRMC,065028.000,A,5124.8094,N,04545.3201,E,0.00,61.26,090510,,,A*5E
$GPVTG,61.26,T,,M,0.00,N,0.0,K,A*3E
$GPGGA,065029.000,5124.8094,N,04545.3201,E,1,05,2.6,157.0,M,-0.9,M,0.0,0000*6B
$GPRMC,065029.000,A,5124.8094,N,04545.3201,E,0.00,61.26,090510,,,A*5F
$GPVTG,61.26,T,,M,0.00,N,0.0,K,A*3E
$GPGGA,065030.000,5124.8094,N,04545.3201,E,1,05,2.6,157.0,M,-0.9,M,0.0,0000*63
$GPGSA,A,3,31,20,14,17,32,,,,,,,,4.0,2.6,3.0*33
$GPGSV,3,1,09,32,76,296,28,31,49,114,29,11,48,235,17,20,45,288,29*71
$GPGSV,3,2,09,14,30,058,27,17,17,309,27,23,16,236,,30,09,058,*76
$GPGSV,3,3,09,12,07,026,*40
интересует строка $GPRMC через запятую перечисляются параметры их нужно присвоить переменным например первый параметр время далее его достоверность потом координаты, скорость курс и т.д.
Пока через кольцевой буфер принимаю символы и отправляю обратно в UART считая строки опираясь на символ $ (типа эхо).
while (1) // бесконечный цикл
{
if (USART_GetRxCount() > 0) // если в приемный буфере не пустой
{
simvol=USART_GetChar(); // считать из буфера UART символ
if (simvol=='$') // если simvol = $
{
i++; // увеличить счетчик на 1
printf("строка %u\r",i); // отправить сообщение в UART
}
putchar(simvol); // отправить символ в UART
}
}
Помогите разложить строку $GPRMC по своим переменным