Personal repository for STM32 exercise
To keep the repository lightweight, the Drivers folder is intentionally ignored in all exercises.
Each example has a project structure similar to this:
GPIO_F103
|-- HAL
|-- LL
|-- Core
|-- Drivers (ignored in repository)
|-- MDK-ARM
|-- main.ioc
Before building a project, you need to provide the missing Drivers folder manually.
You can do one of the following:
- Create a junction link to the official STM32Cube firmware
Driversfolder. - Or temporarily copy the
Driversfolder from your STM32Cube package into the project path.
Either method will make the project build successfully.
The following diagram shows the typical folder structure used for bare-metal exercises.
GPIO_F103
|-- HAL
|-- LL
|-- BareMetal
|-- Core
|-- CrossPlatformLibraries (ignored in repository)
|-- Drivers (ignored in repository)
|-- MDK-ARM
|-- main.ioc
bare-metal exercises use my personal cross-platform libraries.
They are available in the following repository:
https://github.com/AliRezaJoodi/CrossPlatformLibraries
Please clone or download this repository.
To build the exercises, the CrossPlatformLibraries folder must be accessible next to the exercise project.
You can do one of the following:
- Create a junction link so that the
CrossPlatformLibrariesfolder appears beside the exercise project. - Or temporarily copy the
CrossPlatformLibrariesfolder beside the exercise project.
Either method will allow the project to build correctly.
cd /d D:\GitHub\STM32_Exercises\GPIO_F103\BareMetalmklink /J Drivers D:\SDKs\STM32Cube_FW_F1_V1.8.7\Driversmklink /J Drivers D:\SDKs\STM32Cube_FW_F4_V1.28.3\Driversmklink /J CrossPlatformLibraries D:\GitHub\CrossPlatformLibrariesrmdir SDK
GitHub Profile:
GitHub.com/AliRezaJoodi
Download single folder or file from GitHub:
https://minhaskamal.github.io/DownGit/#/home
- F103: STM32F103
- F401: STM32F401
- F407: STM32F407
| Title | Bare Metal | LL | HAL |
|---|---|---|---|
| AFIO_F103 | Y | Y | - |
| Bus_F103 | Y | Y | Y |
| Buzzer_F103 | Y | - | - |
| Buzzer_F401 | Y | - | - |
| GPIO_F103 | Y | Y | Y |
| GPIO_F401 | Y | Y | Y |
| GPIO_F407 | - | - | Y |
| Utility_Bit | - | - | - |
| Utility_TimeBase | - | - | - |