Kdysi dávno, cca před dvěma desítkami let, jsem na VUT absolvoval předmět Mikroprocesory (nebo tak nějak

, který se točil hlavně kolem 8051. Pak jsem se po mnoha letech k MCU vrátil a stavěl si různé bastly právě na 8051 od Atmelu. Postupem času jsem přešel na AVR a teď začínám s ARMy.
Co se týče Arduina, je to dobré pro naučení se základů. Spousta lidí u něj zůstane, ale pro serióznější použití bych ho nedoporučoval, zvlášť, pokud budeš uvažovat o náročnějších aplikacích. Pro důvod mrkni třeba na
https://www.youtube.com/watch?v=648Tx5N9ZocCo se týče Atmel studia, osobně s ním mám velmi špatné zkušenosti, konkrétně pro procesor ATmega644P nebylo schopné vygenerovat funkční kód. Problém byl se špatně generovanými skoky, program skákal ne na definovaná místa, ale náhodně někam do kódu. Po několikadenním trápení se s hledáním chyby a prolézání diskusí jsem našel podobně postižené jedince, kteří bug reportovali před několika lety a ten nebyl dosud opraven. Řešením pak byl přechod na jiné (placené) IDE.
Budu nesouhlasit s jedním, z předřečníků, že pro STM32 je málo kitů a jsou drahé.
Pro základní seznámení (a i spoustu aplikací) Ti vystačí
https://www.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module/32656040083.html za necelé $2, ze kterého jsi schopen si postavit i nástroj pro debuggování v aplikaci viz.
https://github.com/blacksphere/blackmagic/wikiDál nesouhlasím s tím, že se musíš trápit s přerušovacím systémem a DMA. Nemusíš, zdrojů je dost

Já osobně mám objednaný kit
http://cz.farnell.com/stmicroelectronics/stm32f429i-disc1/dev-board-advanced-line-mcu/dp/2506924?CMP=i-ddd7-00001003 protože si chci pohrát s rozhraním pro kameru a displej. Cena je včetně dopravy 937,- Kč. Nemyslím, že je to nějak strašné.
A úplně obecně si chci postesknout, že všude v tutoriálech se používá funkce delay, která na určitý čas prostě zastaví procesor. Nikde ale není naznačeno, že se to dá dělat i jinak, a že můžeš pseudoparalelně komunikovat třeba po sériové lince, provádět měření na převodnících, refreshovat display, komunikovat s pamětí a cojávím co ještě.