-
Data: 2022-07-26 03:58:27
Temat: Re: STM32 i HAL -- pierwsze podej?cie, pierwsze pytania
Od: a...@m...uni.wroc.pl szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Arnold Ziffel <a...@h...invalid> wrote:
> Hej,
>
> Tak jak pisa?em -- zacz??em troch? rze?bi? w STM32. Programator jeszcze
> nie przyszed? (zdecydowa?em, ?e jednak nie u?yj? p?ytki Nucleo tylko od
> razu wrzuc? MCU w projektowany uk?ad), ale zacz??em pisa? kod na sucho.
>
> I tu pojawia si? kilka pyta? / problem?w.
<snip>
> 3. Czy ja dobrze widz?, ?e HAL nie udost?pnia mo?liwo?ci szybkiego
> prze??czania pinu mi?dzy wej?ciem i wyj?ciem? Tak si? sk?ada, ?e w
> pierwszym projekcie, do kt?rego chc? u?y? STM32, potrzebuj? trzech stan?w
> (niski, wysoki i wysokiej impedancji). Akurat tutaj nie potrzebuj? tego
> szybko (co 4 ms), wi?c sztuczka z wywo?ywaniem (stosunkowo ci??kiej)
> funkcji HAL_GPIO_Init() si? uda, ale nie wyobra?am sobie tego w bardziej
> krytycznych czasowo sytuacjach.
>
> A mo?e w og?le obs?uga GPIO przez HAL to zabawka dla pocz?tkuj?cych i
> nikt, kto programuje na serio, nie korzysta z tego, tylko pisze
> bezpo?rednio do port?w?
Chyba duzo ludzi uzywa HAL-a. Czesc uzywa interfejs low level.
Ja zaczelem od biblioteki 'libopencm3', z tym ze sporo rzeczy
robilem bezposrednio.
Co do szybkiego przelaczania: mysle ze filozofia wielu programow
zaklada konfiguracje na starcie a potem brak zmian. W STM32
konfiguracja moze byc dosc "ciezka": na starcie wiekszosc urzadzen
jest wylaczona (dla oszczednosci energii), zeby je uaktywnic
trzeba w paru miejscach zrobic odpowiednie ustawienia. Np.
dla GPIO jest lock register: mozesz zablokowac zmiany konfiguracji
az do nastepnego resetu.
> 4. Czy ja dobrze widz?, ?e HAL nie umo?liwia agregowania pin?w? Chcia?bym
> jednocze?nie zmieni? stan konkretnych pin?w w porcie -- czy da si? to
> zrobi? przez HAL, czy trzeba pisa? bezpo?rednio do portu?
>
> 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.
Normalnie chcesz zeby zapis pin(ow) to byla 1-3 instrukcje
maszynowe: w ogolnej wersji jedna umieszcza adres portu
w rejestrze procesora, druga umieszcza wartosc w rejestrze
procesora, trzecia presyla wartosc z rejestru procka do
portu. W wielu sytuacjach potrzebne sa juz w rejestrach
procesora, wtedy wystarczy pojedyncza instrukcja. Jak
masz odpowiednie makra (czy funkcje inline) to tak bedzie
(nie wiem czy HAL to robi). Negacje mozesz wrzucic w
miare prosta makrologia, ale to moze (nie musi) dodac
dodatkowe instrukcje wiec nie jest dobre jako defaultowy
ficzer.
> 7. Pytanie bardziej o sam mikrokontroler. W jakim stanie b?d? piny, gdy
> procesor wejdzie w stan resetu
W datasheet jest stan rejestrow po resecie. We wszystkich modelach
STM32 ktore widzialem normaly stan po resecie to bylo "input floating".
> (bo np. b?d? wrzuca? nowy program przez
> programator)?
Ja uzywalem STlink (sprzet) z opensourcowym programem stlink.
On _nie_ resetowal procka do programowania. Jak byla jakas
dziwna konfiguracja urzadzen to zostawala po programowaniu
Tak a propo: duzo modeli ma bootloader. Jak odpowiednio
ustawisz piny (i ewentualnie flagi konfiguracji) to
bootloader startuje po resecie. Niezaleznie od tego czy
bootloader wystatartowal mozesz programowac przez STlink
(SWD). Ale stan procka sie rozni: bootloader konfiguruje
niektore urzadzenia.
--
Waldek Hebisch
Następne wpisy z tego wątku
- 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
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
Najnowsze wątki
- 2025-11-12 Strefa Schengen
- 2025-11-12 #Motodziennik 352 - STRACH SIĘ BAĆ - Zombi VS radio AM, prawo do naprawy i niemiecki pomysł...
- 2025-11-12 Aparatu szukam
- 2025-11-12 Azylant na Węgrzech donosi prokuraturze na ministra sprawiedliwości/prokuratora generalnego
- 2025-11-12 Wrocław => Specjalista ds. Marketingu Online (PPC) <=
- 2025-11-12 Gdańsk => Delphi Programmer <=
- 2025-11-12 Białystok => Generative AI Engineer <=
- 2025-11-12 Białystok => Gen AI Engineer <=
- 2025-11-12 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-11-12 Gdańsk => Programista Delphi <=
- 2025-11-12 => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-11-12 Warszawa => Engineering Manager <=
- 2025-11-12 Białystok => Senior Microsoft Dynamics 365 Business Central Konsultan
- 2025-11-12 Większy zasięg w elektrykach nikomu nie jest potrzebny
- 2025-11-12 Za dwa lata nie będzie wielu usług (19xxx)




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei