# Readme
###### tags: `firmware_hardware` `electrical_system` `NTURT`
This book is for organizing what is known about the STM32 peripherals in a quick and short way so that people after this don't have to spend 30 years looking online trying to find specific information from 400 different tutorials and documentations written by completely different people. Hence, note is currently listed by periphral and libraries, and written based on concepts.
If you are completely new to MCU or STM32, I suggest taking a look at the 2 2022 summer course page down below. The "Intro to STM32 page" is mostly about quickly briefing what is STM32 and all the technical terms, and the "STM32 Experiments" page is doing demos for GPIO, EXTI and CAN peripherals. I recommend understanding the terms first, then learn about GPIO and interrupts next. After that, I think there is no definite order for learning all the other peripherls since they mostly operate independently.
A few things that I would suggest looking though:
* description of HAL: The first few pages of the official HAL documetation describes how the HAL is intended to be used generally. Reading it helps understanding the rest of the peripherals IMO.
* clock tree: we actually don't need to touch the clock tree at all when just prototyping with peripheral functionalies. But knowledge for how it works is absolutely needed if we want to tweak anything related to time.
* tools: technically we only need a text editor, a compiler and a flasher to do any MCU programming, so it's easy to forget about how some magical tools exists to help.(I spent months prototyping without knowing that it is possible to run GDB with MCU before) I think it's pretty important to spend some time searching for what our IDEs can do.
### Currently finished pages
* GPIO - HAL cheatsheets
* CAN - frame construction & HAL cheatsheets
* VSCode as Editor
* Linux Tools - with only Debbugger section incomplete
* Bugs, Pitfalls, and Pain
* TouchGFX - TouchGFX on STM32F469
* 2022(2023) CAN bus(firmware and hardware) group summer course