För att blinka en lysdiod med en STM32 eller annan ARM, eller PIC32 eller vad som helst, så behövs marginellt mer kod än för att göra samma sak på en AVR.
Detta förutsatt att man gör det direkt mot register, istället för att använda tillverkarens HAL-drivare. Då blir det ofta mer kod för initiering och liknande, men kanske bättre läsbarhet. Men det går lika bra att jobba direkt mot hårdvaruregister i avancerade MCUer som i enklare AVR.
Enda stora skillnaden är att istället för ett enda diskret datablad på några hundra sidor, så har man en referensmanual på kanske 1000-2000 sidor att bläddra i, för att det finns så mycket hårdvara att beskriva.
Just detta var min största tröskel när jag började med ARM för ett antal år sen, ifrån att ha använt 8bit PIC.
Jag insåg inte att det fanns en referensmanual, utan jag kollade bara databladet som är väldigt knapphändigt på annan information än rent elektrisk. Sen hittade jag genom Google, en massa info om hur man gjorde saker medelst HAL-drivarna. Som måttligt erfaren programmerare så tyckte jag att dessa var superkrångliga, och där med blev även ARM väldigt krångligt...
Efter att ha hittat referensmanualen och börjat göra saker direkt mot hårdvara istället så släppte det hela ordentligt.

Men nu kommer ju du ifrån andra hållet. Jag kom ifrån 8bit PIC vilket jag lärde mig i Assembler, och sen gick över till C. Sen till ARM. Du verkar ju mer komma ifrån högnivåspråk och gå nedåt, så då kanske det å andra sidan passar bättre att använda HAL-drivare och annat jox.