eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32 i HAL -- pierwsze podejście, pierwsze pytaniaSTM32 i HAL -- pierwsze podejście, pierwsze pytania
  • 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!

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: