Source repository: https://github.com/embeddip/examples-stm32
This repository contains STM32 examples and support files for the book Embedded Digital Image Processing with Microcontrollers. The project targets STM32F746-based development with STM32CubeMX-generated support files, CMake, and the GNU Arm Embedded toolchain.
Core/: STM32 application source and headers.Drivers/: STM32 HAL, CMSIS, CMSIS-DSP, and CMSIS-NN files.Middlewares/: third-party middleware used by selected examples.LIBJPEG/: JPEG support files.embedDIP/: local copy of the embedded digital image processing library.apps/: listing applications that can be built by replacingCore/Src/main.c.build_all_apps.sh: script for compiling the listing applications.CMakePresets.json: CMake presets for Debug, Release, RelWithDebInfo, and MinSizeRel builds.
- CMake 3.22 or newer
- Ninja
- GNU Arm Embedded toolchain with
arm-none-eabi-gcc - STM32CubeMX or STM32 VS Code tooling for project regeneration or board-specific changes
- STM32F746 target board, such as STM32F746G-DISCO
Configure the Debug build:
cmake --preset DebugBuild the Debug configuration:
cmake --build build/DebugOther available presets are Release, RelWithDebInfo, and MinSizeRel.
Build every file in apps/:
./build_all_apps.shThe script copies each listing application into Core/Src/main.c, builds it, saves the generated artifacts, and restores the original main.c. Build logs and generated artifacts are written under apps/build_outputs/.
The STM32 examples are organized across branches:
| Branch | Contents |
|---|---|
main |
Default STM32F746 project branch. |
main-c-apps |
C listing applications. |
main-cpp-apps |
C++ listing applications. |
main-c-ai-apps |
C AI listing applications. |
main-cpp-ai-apps |
C++ AI listing applications. |
- Core library: https://github.com/embeddip/embedDIP
- Python UART transfer tool: https://github.com/embeddip/PyDIPLink
- ESP32 examples: https://github.com/embeddip/examples-esp32
See the license files included with this repository and with the third-party components under Drivers/, Middlewares/, and LIBJPEG/.