eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32 i HAL -- pierwsze podejście, pierwsze pytaniaRe: STM32 i HAL -- pierwsze podejście, pierwsze pytania
  • Data: 2022-07-26 10:09:47
    Temat: Re: STM32 i HAL -- pierwsze podejście, pierwsze pytania
    Od: "Grzegorz Niemirowski" <g...@g...net> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Arnold Ziffel <a...@h...invalid> napisał(a):
    > Hmm, nie mam nic takiego.
    > https://ibb.co/MBsK0f7

    To może być kwestia ustawień opcji generowania kodu. Zobacz sobie folder
    rezpozytorium Cube:
    C:\Users\Arnold\STM32Cube\Repository\STM32Cube_FW_F4
    _V1.27.0\Drivers\STM32F4xx_HAL_Driver\Src

    Miganie LED-em low level:
    http://grzegorz.net/stm32/src/LED_blink_LL.txt

    > A można mieszać jedno z drugim, czy HAL trzyma jakiś swój stan, który się
    > rozjedzie, gdy zacznę mu pisać po rejestrach?

    HAL prawie nic nie trzyma z wyjątkiem zmiennej uwTick od liczenia ticków 1
    ms oraz aktualnego taktowania rdzenia w zmiennej SystemCoreClock. Do tego w
    strukturach peryferiów trzyma sobie np. lock. Ogólnie można mieszać. Ja np.
    w aktualnym projekcie używam HAL-a ale jak chciałem ustawić wartość PWM, to
    napisałem zwyczajnie:
    TIM1->CCR4 = value;
    zamiast:
    __HAL_TIM_SET_COMPARE(&tim1, TIM_CHANNEL_4, value);

    > 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.

    Tutaj nie ma czegoś takiego. HAL ma po prostu ukrywać rejestry i dawać
    przenośność kodu. Dla mnie główna wartość leży w gotowych sterownikach
    peryferiów, np. jest gotowa funkcja HAL_I2C_Mem_Read().

    > I za każdym razem po przegenerowaniu kodu odpalasz astyle lub coś takiego?

    Ja akurat używam Cube jako dodatkowe narzędzie. Wypluwa mi kod w innym
    miejscu i przeklejam interesujące fragmenty do projektu.

    > 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?

    Tutaj mogło mi się pomylić. Sprawdziłem teraz na STM32CubeProgrammer i tam
    kliknięcie Connect powoduje wyłączenie PWM niezależnie od wyboru jednego z
    trzech trybów resetu. Natomiast jeśli w Eclipse zatrzymam program, to PWM
    działa dalej.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/

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: