Re: STM32F427 nefukční HAL_Delay()

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pátek Duben 5 13:59:44 CEST 2024


Je to divné, nikdy jsem u žádného STM32 neměl takový problém. Zkuste 
třeba znova vygenerovat nový projekt. Systick časovač se tuším nastavuje 
a přerušení povoluje někde při nastavení hodin, je na to v main modulu 
vygenerovana funkce, tak mozna prokrokovat i tu, jestli nekde neco 
neselze (kontroluji se tam oscilatory atp.)
Jeste jde myslim nastavit misto časovače v jadru některý std. periferní 
časovač ale to asi nebude nic řešit.

Používat HAL ja naopak považuju za dobrý nápad, pokud se nechce něco 
naprosto speciálního, běžné požadavky programátora uspokojí, kód je 
snadno přenosný a udržitelný. Funkce běžných periferií není ani potřeba 
zkoumat, třeba UART funguje všude tak nějak stejně.

Dne 05.04.2024 v 13:46 Libor napsal(a):
> Zdravím,
> žádné přerušení nepoužívám, mám jen jednoduchý program, kde je nyní 
> jen HAL_Delay(10);
> Přesto se to nevrátí.
>
> Ano tomu rozumím, ale než načtu celou dokumentaci která má větší 
> stovky stran, tak to bude trvat věky a/proto jsem vzal je ST klikací 
> nástroj, kde si rozchodím jednodušše periferie které potřebuji v 
> nějakém primitivním demo kódu, abych byl schopen dooživit svůj HW, 
> nechci a pravděpodobně ani nebudu psát výsledný FW.
> Libor
> Dne 05.04.2024 v 12:06 Jan Waclawek napsal(a):
>> Nepouzivajte HAL_Delay() v preruseni.
>>
>> (Dovod: uwTick sa inkrementuje v preruseni od SysTicku, t.j. ak 
>> zostanete
>> trcat v preruseni ktore ma vyssiu alebo rovnaku prioritu ako SysTick
>> prerusenie, tak sa uwTick neinkrementuje. Z toho vyplyva aj to, ze 
>> mozete
>> pouzit HAL_Delay() v preruseni s nizsou prioritou nez SysTick 
>> prerusenie,
>> ale ak dodrzite tu uplne prvu vetu, tak to je automaticky zarucene a
>> netreba sa nad tymi prioritami zamyslat).
>>
>> wek
>>
>> PS. Ja osobne doporucujem Cube/HAL nepouzivat vobec.
>> Viem to odovodnit, ale je to na dlhe rozpravanie, a je to tu mensinovy
>> nazor.
>>
>>
>>
>> ----- Original Message ---------------
>>> Zdravím,
>>>
>>> bojuji tu s měřící deskou osazenou STM32F427Z, bohuľel nějak mi to 
>>> mrzne
>>> ve funkci HAL_Delay, ze které se nikdy nevrátí.
>>>
>>> Doąel jsem postupně aľ k funkci HAL_GetTick, která čte volatile registr
>>> uwTick, který je stále nula. Mám to vygenerované z CubeIDE, jen
>>> jednoduchý kód o pár řádcích. Pravděpodobně problém v generování těch
>>> SysTicků.
>>>
>>> Zkouąel jsem i nucleo F446, kde vąe funguje.
>>>
>>> Bohuľel od včera jsem se nepohnul, je tu spousta STM32 zdatných, tak
>>> prosím o nakopnutí, na co se zaměřit, kde by mohl být problém. Já jsem
>>> spíąe přes HW, firmweráře zatím nemaje, ale k rozchození HW bych
>>> potřeboval nějaké části karty rozhýbat, ale zasekl jsem se hned na
>>> začátku :-(
>>>
>>> Libor
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list