Hardware/knowledge requirements
The only knowledge requirement to read this book is to know some Rust. It’shard for me to quantify some but at least I can tell you that you don’t needto fully grok generics but you do need to know how to use closures. You alsoneed to be familiar with the idioms of the 2018 edition, in particular withthe fact that extern crate
is not necessary in the 2018 edition.
Also, to follow this material you’ll need the following hardware:
(Some components are optional but recommended)
- A STM32F3DISCOVERY board.
(You can purchase this board from “big” electronics suppliers or from e-commercesites)
- OPTIONAL. A 3.3V USB <-> Serial module. This particular model will be usedthroughout this material but you can use any other model as long as it operates at 3.3V.
(The (Chinese) CH340G module, which you can buy e-commerce sites, works too and it’s probablycheaper for you to get)
- OPTIONAL. A HC-05 Bluetooth module (with headers!). A HC-06 would work too.
(As with other Chinese parts, you pretty much can only find these on e-commerce sites.(US) Electronics suppliers don’t usually stock these for some reason)
- Two mini-B USB cables. One is required to make the STM32F3DISCOVERY board work. The other is onlyrequired if you have the Serial <-> USB module.
NOTE These are not the USB cables that ship with pretty much every Android phone; thoseare micro USB cables. Make sure you have the right thing!
- MOSTLY OPTIONAL. 5 female to female, 4 male to female and 1 Male to Male jumper (AKA Dupont)wires. You’ll very likely need one female to female to get ITM working. The other wires are onlyneeded if you’ll be using the USB <-> Serial and Bluetooth modules.
(You can get these from electronics suppliers or from e-commerce sites)
FAQ: Wait, why do I need this specific hardware?
It makes my life and yours much easier.
The material is much, much more approachable if we don’t have to worry about hardware differences.Trust me on this one.
FAQ: Can I follow this material with a different development board?
Maybe? It depends mainly on two things: your previous experience with microcontrollers and/orwhether there already exists a high level crate, like the f3
, for your development boardsomewhere.
With a different development board, this text would lose most if not all its beginner friendlinessand “easy to follow”-ness, IMO.
If you have a different development board and you don’t consider yourself a total beginner, you arebetter off starting with the quickstart project template.