-
Data: 2022-07-25 17:10:02
Temat: STM32 i HAL -- pierwsze podejście, pierwsze pytania
Od: a...@h...invalid (Arnold Ziffel) szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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.
1. STM32CubeMX nie umożliwia ustawienia pull-upa na wejściowym pinie.
Zakładam, że to błąd. Można to obejść edytując wygenerowany main.c (co
i tak zostanie nadpisane przy najbliższej zmianie w CubeMX) lub konfigurując
port jeszcze raz, już po tej konfiguracji z main.c. Czy jest bardziej
elegancki sposób? Może edycja pliku .ioc? Jest tekstowy i widzę w nim:
PA0-WKUP.GPIOParameters=GPIO_Label
PA0-WKUP.GPIO_Label=KEY
PA0-WKUP.Locked=true
PA0-WKUP.Signal=GPIO_Input
Może tu coś można dopisać?
2. Podobnie jest z pinami wyjściowymi -- nie widzę nigdzie możliwości
ustawienia ich domyślnego stanu. HAL konfiguruje je jako wyjścia i tyle. W
jakim stanie te wyjścia będą zaraz po konfiguracji i czy można to zmienić?
Znów, fragment pliku .ioc:
PC13-ANTI_TAMP.GPIOParameters=GPIO_Label
PC13-ANTI_TAMP.GPIO_Label=LED
PC13-ANTI_TAMP.Locked=true
PC13-ANTI_TAMP.Signal=GPIO_Output
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?
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.
6. Szablon generowany przez CubeMX jest wyindentowany dwiema spacjami. Ja
mam inny styl pisania. Czy jest możliwość zmiany indentacji wygenerowanego
kodu w taki sposób, żeby kolejna generacja kodu mi tego nie przywróciła?
Na razie poradziłem sobie tak, że po prostu przeniosłem swój kod do
osobnego pliku i wołam go z wygenerowanego main.c, ale burzy mi to
poczucie estetyki.
7. Pytanie bardziej o sam mikrokontroler. W jakim stanie będą piny, gdy
procesor wejdzie w stan resetu (bo np. będę wrzucał nowy program przez
programator)? Piny zostaną tak, jak są, czy przejdą w stan wysokiej
impedancji? Może można jakoś wymusić ich konkretny stan przed samym
programowaniem? Mam do pinów podłączony LCD, więc z oczywistych powodów
nie chcę na nich DC.
Chyba na razie tyle z pytań...
Pozdr.
--
- Dlaczego słoń nie może mieć dzieci z zebrą?
- Bo nie potrafi z niej zdjąć tej cholernej piżamy w paski!
Następne wpisy z tego wątku
- 25.07.22 18:11 Grzegorz Niemirowski
- 25.07.22 21:20 Arnold Ziffel
- 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
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=