The STM32 Forest

I'm new to rust. I've been working my way through the STM32F3DISCOVERY rust book and I want to go beyond what I've learned there. I'm definitely among the trees and not able to see the forest at this point. I do understand that the rust embedded tools and libraries are still maturing, but I strongly sense there's a higher level of understanding I need. Specifically, I'm finding myself bewildered by the many different sources of crates for this board. Can HALs and PACs be mixed and matched, or are they bound in pairs? Is the best source, or should I be using GitHub - stm32-rs/stm32-rs: Embedded Rust device crates for STM32 microcontrollers, or some other repository?

Has anyone found themselves in this situation? What was the turning point for you? Was there a specific web site, blog, or posts you found the provided the larger picture?

Maybe you can take a look at the 'Internet of streams' youtube-series by James Munns ( to get a better understanding on how things in embedded rust work. Or you can join the matrix channel of rust embedded to get more specific help.

1 Like

I started working on embedded Rust a few months ago. The Discovery book was great and I learned a lot. But I soon found that the f3 crate used some outdated API and I switched to stm32f3xx-hal.

Also, f3 is a board crate specifically built for the Discovery board. I wanted to use a more generic crate. My understanding is that stm32f3xx-hal is built on top of stm32f3 PAC and supports many STM32F3 series microcontrollers.

I now use stm32f4xx-hal as well. I have been learning a lot from the two hal crates' examples.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.