Skocz do zawartości

Kurs STM32L4 – #3 – wejścia/wyjścia, czyli GPIO w praktyce


Komentator

Pomocna odpowiedź

@masi23x witam na forum, milo słyszeć, że kurs Ci się podoba 🙂

GPIO_PinState to typ wyliczeniowy, który ma być używany w miejscach, o których wspomniałeś - takie było po prostu założenie twórców tej biblioteki. Więc, jeśli chcemy tworzyć programy zgodnie z dokumentacją to powinniśmy korzystać właśnie z tego typu wyliczeniowego. Jeśli wstawisz tam bezpośrednio 1/0 to postępujesz niezgodnie ze standardem biblioteki. Oprócz tego kompilatory mogą zgłaszać błędy/ostrzeżenia, ponieważ w miejscu na GPIO_PinState podajesz inny typ danych. Jednak ogólnie masz rację, właściwie wychodzi na to samo, bo podglądając deklarację tego typu wyliczeniowego znajdziemy coś takiego:

/** 
* @brief  GPIO Bit SET and Bit RESET enumeration 
*/
 typedef enum
 {
   GPIO_PIN_RESET = 0,
   GPIO_PIN_SET
 }GPIO_PinState;
 /**

Warto jednak trzymać się wytycznych przewidzianych przez projektantów biblioteki. W skrajnym przypadku można sobie wyobrazić, że za jakiś czas biblioteka zostanie przerobiona w taki sposób, że wcale nie będzie tam 1/0 tylko coś zupełnie innego. Jeśli Twój kod będzie bazował na takich ręcznych wstawkach wartości to wtedy nie zadziała poprawnie, jeśli będzie użyty GPIO_PinState to wszystko zadziała poprawnie 🙂 

  • Lubię! 1
Link do komentarza
Share on other sites

Dlaczego, żeby zmienić stan logiczny np pinu PA5 nie mogę po prostu napisać jak dawniej:
PORTA |= (1<<PA5);
czy
PORTA &= ~(1<<PA5);

przecież to język C, lecz muszę wprowadzać dziwolągi np HAL_GPIO_... itd itp ???

Link do komentarza
Share on other sites

@lzo witam na forum 🙂 W kursie występują takie funkcje i struktury, ponieważ jest to kurs programowania STM32 z wykorzystaniem biblioteki HAL, która właśnie zastępuje tego zapisy, które zaproponowałeś odpowiednimi funkcjami i strukturami. Ma to ułatwić przenoszenie programów między różnymi układami danego producenta oraz wykorzystywanie bardziej zaawansowanych peryferiów. Korzystanie z takiej biblioteki nie jest przymusowe - nadal możesz programować układy tak jak chcesz, czyli metodą "na rejestrach". 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.