-
Data: 2022-07-25 21:20:28
Temat: Re: STM32 i HAL -- pierwsze podejście, pierwsze pytania
Od: a...@h...invalid (Arnold Ziffel) szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Grzegorz Niemirowski <g...@g...net> wrote:
>> 1. STM32CubeMX nie umożliwia ustawienia pull-upa na wejściowym pinie.
>
> Umożliwia. System Core -> GPIO. Klikamy w pin i w dolnej tabelce można
> wyklikać pull-up lub pull-down.
A widzisz, faktycznie :) Robiłem to z menu pojawiającego się po kliknięciu
pinu i tam nie było. Dzięki.
> Wydaje mi się, że nie ma możliwości wyklikania tego i trzeba ręcznie.
> Ponieważ stan rejestrów wyjściowych nie jest modyfikowany, piny będą w
> stanie niskim.
Jednak się dało -- we wspomnianym w p. 1 menu. Wygenerował:
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
> HAL słynie ze swoich ciężkich struktur i funkcji konfigurujących. W
> pewnym momencie ST zorientowało się, że coś jest nie tak i udostępniło
> obok HAL-a sterowniki Low Level. W wygenerowanym kodzie, w katalogu
> HAL-a, oprócz plików stm32*_hal_* są też pliki stm32*_ll_*. Obejrzyj
> sobie jakie funkcje zawierają. Są właśnie taką lekką alternatywą. Poza
> tym te ciężkie funkcje inicjalizują dużo rzeczy naraz i nie pozwalają
> zmienić tylko jednej bez ruszania innych.
Hmm, nie mam nic takiego.
https://ibb.co/MBsK0f7
> Są ludzie gardzący HAL-em, można ich spotkać na Elektrodzie. Jak zwykle
> trochę słusznie a trochę nie. Ja używam HAL-a, ale trzeba rozumieć jak
> działa i jaka jest filozofia jego twórców. W każdym razie HAL jest popularny
> i moim zdaniem nie trzeba go unikać. Z drugiej strony rejestry STM32 nie są
> jakoś dużo bardziej skomplikowane od AVR i można też jechać bezpośrednio na
> rejestrach.
A można mieszać jedno z drugim, czy HAL trzyma jakiś swój stan, który się
rozjedzie, gdy zacznę mu pisać po rejestrach?
> GPIO_Pin to maska bitowa zawierająca listę pinów,
A, i to jest kluczowa informacja :)
> Swoją drogą to fajny ficzer STM32, że pinami portu możesz sterować
> atomowo, nie ma read-modify-write.
Właśnie widzę -- fajna rzecz, często pisząc na AVR musiałem wrzucać atomic
blocks właśnie przez nieatomowość prostego wystawienia stanu na porcie.
>> 5. Mamy piękny enum GPIO_PinState, a w nim wartości GPIO_PIN_SET oraz
>> GPIO_PIN_RESET. Czy HAL umożliwia takie skonfigurowanie portu, żeby port
>> był zanegowany (czyli np. pisząc PIN_SET chcemy tak naprawdę ustawić tam
>> stan niski, i tak samo odczytując)? Nie widzę nic takiego, a skoro już
>> wprowadzili HAL, to wydaje mi się to rozsądne i logiczne.
>
> O ile wiem, to nie ma czegoś takiego. Te funkcje do operowania na GPIO to
> prawie jakbyś pisał bezpośrednio do rejestrów.
Hmm, chyba mentalnie umieściłem HAL wyżej, niż faktycznie jest.
Ja zwykle piszę sobie różne pomocnicze funkcje i np. moja funkcja "set
LED" ma zapalić diodę, a jak ta dioda jest podłączona i jaki stan trzeba
wystawić, to jest już zmartwienie tej funkcji. HAL widziałem mniej więcej
na tym poziomie.
> Też chciałbym wiedzieć, na razie przerabiam ręcznie.
I za każdym razem po przegenerowaniu kodu odpalasz astyle lub coś takiego?
> To jakiś specjalny LCD, że napięcie stałe mu szkodzi?
Najzwyklejszy LCD bez wbudowanego kontrolera. One degradują się od DC.
Stąd zresztą potrzeba przełączania GPIO raz jako wejście, a raz jako
wyjście (chcę podłączyć do pinu rezystory, ustalające na nim połowę
napięcia zasilającego, gdy STM odłączy od niego swoje drivery). Taki
projekt badawczy, żeby zobaczyć, czy uda się uzyskać dostateczny kontrast
sterując w taki sposób LCD (mający 4 backplane'y). Jak się nie uda, to
spróbuję z PWM a jak i to się nie uda to trudno, mam już w koszyku
PCF8566.
> Jeśli mikrokontroler wejdzie w programowy reset, to peryferia działają
> dalej, np. PWM. Przy czym ST-Link może resetować uC programowo i
> sprzętowo.
Hm, ciekawe. To co dokładnie dzieje się podczas wgrywania wsadu przez
ST-Link? Peryferia działają, ale program się zatrzymuje i I/O (o ile nie
jest sprzętowo kontrolowane np. przez timer z PWM) zatrzymuje się w takim
stanie, w jakim było?
--
Pacjent mówi do lekarza:
- Ugryzł mnie pies.
Lekarz odpowiada.
- Gdzie?
- Na rogu, koło szkoły.
Następne wpisy z tego wątku
- 26.07.22 03:58 a...@m...uni.wroc.pl
- 26.07.22 08:14 Marek
- 26.07.22 09:29 Janusz
- 26.07.22 09:40 Grzegorz Niemirowski
- 26.07.22 10:00 MKi
- 26.07.22 10:09 Grzegorz Niemirowski
- 26.07.22 11:48 jacek pozniak
- 26.07.22 12:01 MKi
- 26.07.22 12:03 MKi
- 26.07.22 13:48 stary grzyb
- 26.07.22 17:13 Arnold Ziffel
Najnowsze wątki z tej grupy
- Niby uziom ale nie
- Położyłem dwa telefony obok siebie
- Przekaźnik na szynę DIN (?)
- Taśma LED
- Jak odróżnić myjki wibrujące od ultradźwiękowych.
- Ledy na wyłączniku czasowym błyskają
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- RCD wybija
- Re: Kompensacja mocy biernej przy 230VAC
- Łożysko ślizgowe - jaki olej
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- Współczesny falomierz
- Zasilacz 7V na szynę DIN
Najnowsze wątki
- 2025-04-10 Niby uziom ale nie
- 2025-04-10 Samsung A12 - po co 4 obiektywy ?
- 2025-04-10 Pendrive - czy to rzeczywiście Sony ?
- 2025-04-10 Warszawa => Junior Digital Project Manager <=
- 2025-04-10 Warszawa => Junior Digital Project Manager <=
- 2025-04-09 [przegląd prasy] - raport mniejszosci
- 2025-04-09 [przegląd prasy] - wypadek autobusu w Warszwie - wyrok (prawomocny)
- 2025-04-09 [przegląd prasy] - przejścia na drogach rowerowych
- 2025-04-09 Czy blokowanie sali obrad Sejmu przez PO-opozycje pod rządami PiS już się przedawniło? [mecenas Giertych dołki kopie?]
- 2025-04-09 Koniec produkcji Leapmotor T03
- 2025-04-09 Pruszków => Specjalista ds. public relations <=
- 2025-04-09 Rzeszów => International Freight Forwarder <=
- 2025-04-09 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-04-09 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-04-09 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f