Resource: Tutorial how to get into embedded software development

If you want to get into embedded development beyond Arduino I will point you to a series of articles on the embedded.fm blog.

In the series EMBEDDED WEDNESDAYS: GETTING STARTED IN EMBEDDED SYSTEMS you will find a very good introduction into developing embedded software using C on a STM32 MCU containing an ARM Cortex-M4F core.

The series starts by getting an introduction into the C programming language. Without getting too deep into the language you will learn enough to get started and implement your first projects that go well beyond the usual blinking LED (also this example is also included as an article).
In the following sections you will learn how the HAL library CubeMX from ST is working and can be used for own projects.
Later you will learn how some important peripherals and communication technologies like U(S)ART and SPI. The author also covers concepts like Polling, Interrupt and DMA with a very understandable introduction supported by many pictures and diagrams.