stm32f1-hal
Because the design of stm32f1xx-hal is unsuitable for my needs and stm32-hal doesn't support the F1 series, I decided to write a new crate. Many codes come from stm32f1xx-hal.
Example is here.
Design
Below are the design principles.
- Readability is the most important.
- We only write code a few times, but we read it countless times. Moreover, understanding the code is a necessary condition for maintaining it.
- Conciseness does not equal simplicity.
- Fewer lines of code mean conciseness, but being easy to understand is simplicity.
Therefore, if a module is quite complex, I would not use a macro + generic approach, as it is too difficult to read.
Instead, I use a script to generate code for GPIO alternate function remapping and a synchronization script to manage duplicate code across peripherals.
Note
This project is still in its early stages, with only a few features completed.