Skocz do zawartości

Czy biblioteka Hal dla stm32 umożliwia zapis ew. modyfikację całego portu


Dinosaurus

Pomocna odpowiedź

Jestem nowicjuszem jeśli chodzi o programowanie STM32 ale mikrokontrolery programuję od lat (8051 w asemblerze oraz AVR w C). Teraz próbuję opanować STM32. Poznając nowy mikrokontroler zauważyłem że nigdzie w kodach przykładowych nie używa się zapisu do portu ani modyfikacji całego portu choćby przez and lub or ale wszędzie poprzestaje się na zmianie stanu pojedyńczego pinu. Podejrzewam że to ma jakieś uzasadnienie ale jestem b. ciekaw jakie. Czy biblioteka HAL w ogóle umożliwia zapis do portu . Może ktoś zechce wyjaśnić. Z góry dziękuję i pozdrawiam.   

Link do komentarza
Share on other sites

Dziękuję _LM_ za odpowiedź. Posiadam kurs STM32L4 w wersji książkowej. Czytałem ten rozdział kilka razy ale nic na ten temat nie zauważyłem. Wieczorem przeczytam ten rozdział jeszcze raz dla pewności że niczego nie przegapiłem . Dla pewności chcę uściślić. Chodzi mi o zapis podobny jak dla AVR to jest np. PORTB=0xFF a tu mogłoby być np. PORTB=0xFFFF . lub np, GPIO_PORTB=0xFFFF lub coś podobnego. Mam nadzieję że teraz lepiej wyjaśniłem o co mi chodzi. Pozdrawiam.

Link do komentarza
Share on other sites

@Dinosaurus Jeśli wszystkie piny należą do tego samego portu, to możesz użyć kombinacji pinów w wywołaniu HAL_GPIO_WritePin, czyli przykładowo:

HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin | LED2_Pin, GPIO_PIN_SET);

Można nawet użyć coś na wzór PORTB |= 0xffff, czyli:

HAL_GPIO_WritePin(GPIOB, 0xffff, GPIO_PIN_SET);

 

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Elvis napisał:

Cytat

Między tymi "cząstkowymi" operacjami mogą wystąpić przerwania, a jeśli korzystamy z RTOS-a mogą się nawet wykonać inne wątki. To może powodować wiele problemów, dlatego HAL używa rejestrów BSRR do ustawiania, a BRR do kasowania bitów - to są operacje atomowe, czyli przerwania nie mają na nie wpływu.

i to jest genialna odpowiedź która wyjaśnia dlaczego HAL nie stosuje zapisu  w stylu PORTx=coś_tam. Jeszcze raz dziękuję. Pozdrawiam.

  • Lubię! 1
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.