STM32VLDISCOVERY: obsługa modułu GPS Fastrax IT500
Oprogramowanie
Oprogramowanie dla mikrokontrolera STM32 zostało napisane przy wykorzystaniu środowiska programistycznego Keil µVision oraz bibliotek STM32F10x StdPeriph Lib w wersji 3.5.0. Na rysunku 5 przedstawiono schemat blokowy programu.
Rys. 5. Schemat blokowy programu
Po uruchomieniu programu w pierwszej kolejności mikrokontroler STM32 konfiguruje wyprowadzenie PA10. Następnie konfigurowany jest interfejs komunikacyjny UART. Parametry pracy są zgodne z parametrami ustawionymi w module GPS:
- Baudrate 9600,
- 8 bitów danych,
- 1 bit stopu,
- Brak parzystości.
Dzięki temu wyprowadzenie PA10 może służyć do odbioru danych z modułu GPS. Następnie mikrokontroler oczekuje na odebranie tychże danych (są one kodowane zgodnie z protokołem NMEA0183). Bajt po odebraniu wpisywany jest do tablicy temp[] w miejsce o indeksie 0. Jeśli zawarta w nim informacja zostanie zinterpretowana jako znak inny niż ‘$’, następnych pięć odebranych bajtów wpisywanych jest pod kolejne indeksy tablicy temp[]. Znaki te symbolizują identyfikator zdania. Jeśli identyfikator nosi nazwę GPGLL, oznacza to, że dane, które po nim wyśle moduł GPS zawierają informację o czasie i pozycji GPS. W tej sytuacji kolejne bajty są wczytywane do tablic o nazwach time[], n[] oraz e[]. W tablicach tych znajdują się odpowiednio: aktualny czas, szerokość geograficzna i długość geograficzna.
Warto przyjrzeć się bliżej wybranym funkcjom programu. Część kodu została opisana w książce [1] i nie będzie powtórnie opisywana w tym opracowaniu.
W listingu 1 przedstawiono ciało funkcji getch(), która odpowiada za sczytywanie poszczególnych znaków do zmiennej. Docelowo funkcja wczytuje wartości do poszczególnych tablic. Dodatkowo funkcja zamienia każdy znak ‘,’ na znak ‘|’.
Listing 1.
char getch(void)
{
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
{
}
tmp = USART_ReceiveData(USART1);
if(tmp == ’,’)
{
tmp = ’|’;
}
else
return tmp;
}
W listingu 2 pokazano kod będący „sercem” całego programu. Odpowiada on za odczytywanie danych z modułu GPS i ich interpretację.
Listing 2.
while(1)
{
while((temp[0]=getch()) != ’$’);
for(i=0; i


Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



