popatrz jakie to proste
odebrałem ciąg z uarta: $GPGGA,121934.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*61
sprawdzam czy jest w nim znak $ while((temps[0] = GPS_Start() )!=’$’); // oczekiwanie znaku $
jeśli jest to pobieram 5 znaków po nim : for (i=0;i<5;i++) // pobieramy 5 znaków po $
temps[i] = GPS_Start ();
i sprawdzam czy te 5 znaków to GPGGA if( strncmp(temps, GPGGA, 5)) // sprawdzamy czy nadeszło zdanie GGA
jeśli tak pobieram 10 znaków ...for (i=0; i<10; i++) //pobieramy następne 10 znaków
temps[0] = GPS_Start(); // oczywiście z bufora gdzie trzymam ramkę
następnie pobieram kolejne 10 znaków -- wiem że to czas i dalej ... do znacznika N itd ...
znam budowę ramki więc w ten sposób uzyskuję odpowiednie dane wpisując je do tablicy i wyświetlając na LCD w e właściwym czasie
to samo uzyskasz ty ładująć ramkę do bufora i pobierając ilosc danych miedzy znacznikami
czyli sprawdzasz czy masz # jak tak pobierasz 3 znaki , potem pobierasz następne i następne ....
ja w przykładzie sprawdzam czy odebrałem GPGGA bo zdań na uart leci sporo , a nie wszystkie są mi potrzebne
celowo ci pokazałem jak się to odbywa po stronie procesora .... na kompie masz tak samo