Učení se STM32

Ahoj, mám malý dotaz. Mám možnost se jako samouk naučit s procesorem STM32, protože mám kolem sebe nějaké jejich desky. Ve škole nás učí Atmel a ten je teda podstatně jednodušší už na první pohled. Tak jsem si říkal, že to STM32 zkusím nějak pokořit. Problém je, že nemám vlastně z čeho se učit. Našel jsem na netu pdf knihy Mastering STM32, ale tím, že je to v angličtině, tak mě to moc nebere. Nezná tady někdo nějaký pěkný zdroj nebo knihu v češtině o tomto tématu? Nebo mi nakonec zbyde se tou angličtinou prokousat? Díky moc :smiley:

mcu.cz/comment-n2769.html

dole je zoznam odkazov na vyše 30 dielny seriál od Marda.

ďalšie odkazy
mcu.cz/comment-n3255.html

ma mcu.cz toho nájdeš veľmi veľa a je tam aj silná komunita, ktorá Ti pomôže a poradí.
Inak správna voľba učiť sa náročnejšie veci.

Dkžím palce :slight_smile:

To vypadá dobře. Taky zkusím. Kitů na ARM mám několik, ale dokopat se k tomu :slight_smile: Raději sáhnu zatím po dsPIC

No díval jsem se na ten díl z toho prvního odkazu a je to asi jednodušší na pochopení díky té knihovně. Ale protože mám jinačí desku, tak to dělá bordel s knihovnama typu kde je ledka a takové. Zatím nevím, jak si tu knihovnu napsat sám, takže se s tím musím asi nějak poprat :smiley: Konkrétně mámSTM32F3-Discovery s gyroskopem a e-kompasem a druhá deska je STM32F103 od Nuclea, ta je myslím ještě složitější.

Myslím, že nejvíc se naučíš, když dokážeš sám rozblikat ledku bez použití cizích knihoven, jen tak, že napíšeš vlastní kód. Že Ti to zabere týden, 14 dní, no a co? Jakmile pochopíš filozofii toho kterého procesoru/řady, tak další věci půjdou o dost snadněji. Jediný co potřebuješ je katalogový list a uživatelský manuál. Obojí Ti poskytne výrobce procesoru. Podmínkou je taky přiměřená znalost jazyka C, aby ses netopil v naprostých základech.

No našel jsem si na kterém portu je jaká ledka a jaké tlačítko, ale teď nemám vůbec ponětí, jak tu knihovnu vlastně napsat. Nezná tu někdo nějakou stránku, kde se tím někdo zabývá?

Nebuď tak upjatý na slovo “knihovna”. Prostě si napiš prográmek, který LEDku rozsvítí, zhasne, pak k tomu přidej obsluhu tlačítka, rozblikej LEDku pomocí přerušení atd., ať se s procesorem seznámíš. Tvorbu knihovních prográmků pro opakované použití si zatím nechej na později.

25 rokov sa uspesne zivim programovanim jednocipakov.
Mozno je to aj tym, ze som nikdy (po nedobrych skusenostiach) ziadnu zas…nu kniznicu nepouzil.
Vidim to ako zbytocne viac menen zavadzajuce.
Cim skor sa vyhnes predstave, ze niekto kvalitne vyriesi Tvoj problem za Teba, tym lepsie pre Teba :slight_smile:

No také se trochu pokouším dělat prográmky pro stm32. Jak se učit je podle mě několik možností.

  1. Zkusit třeba mbed (mbed.com/en/). je tam mnoho příkladů.
    Výhoda - žádné problémy s toolchainem pro překlad software, velice jednoduché programování.
    Nevýhoda - jsi skoro úplně oddělen od hardware takže nevíš co pořádně programuješ. A hlavně, dělá to na mě dojem špatně použitelné hračky.
  2. Použít hotové knihovny STM32Cube_F4 nebo podle svého čipu.
    Výhoda - dává ti to podstatně jasnější představu o HW pro který píšeš SW.
    Nevýhoda - je to podstatně složitější než předchozí.
  3. Nastudovat si referenční manuál a napsat si svůj SW přímo používající HW.
    Výhoda - víš co přesně jsi napsal
    Nevýhoda - velmi dlouhé učení a více psaní kódu.
    Já osobně jsem zatím ve stádiu 2.
    Vlastně si jen hraji, mikročipy mě neživí. :slight_smile:

Mrkni ještě na návod od Michala Dudka. Používá Low-Layer API
chiptron.cz/news.php?readmore=492

Já jsem se dal cestou LOW-LAYER a pokud periferie není ani v LL, tak jdu do registrů. Je to sice trošku zdlouhavé (ladění psaní, bádání, referenční manuál), ale výsledek je ten, že danou periferii velmi dobře znám a funkci si může napsat k obrazu svému.
A taky když už potřebuješ funkci upravit, tak to jde velmi jednoduše, protože víš co kde máš.

A když si vyzkoušíš obsluhu všech periferií, tak přechod na jiný MCU nebude tak hrozný, jak když nevíš, jak probíha I2C/SPI, ETH/CAN/… komunikace

Jinak jsem zkoušel HAL, ale ta modifikace fce je dost brutální a někdy se v samotné knihovně nevyznám (bo je to psané jak od čuníka).

**Takže jestli to s programováním myslíš opravdu vážně (a ne jako arduinisté) tak:
**1. Píš co pokud možno dole (víš jak to seje a co je uvnitř obsaženo)
2. Nepoužívej cizí knihovny (jsou často s chybama

Tak tak pouzitim knihovny usetris 1hodinu, 30min kym ju prisposobis a chybu v nej budes hladat 30min.(tak ze neusetris nic)
A nakoniec si to napises sam lebo aj tak nerobi co potrebujes ty…