| title | Embedded Programming STM32 - Collaboration Guide | ||
|---|---|---|---|
| description | Contributing guide for Embedded Programming STM32 course content | ||
| tableOfContents | true | ||
| sidebar |
|
Read this course at: https://siliconwit.com/education/embedded-programming-stm32/
A course on STM32 ARM Cortex-M development covering HAL and register-level programming. Topics include clock configuration, DMA, communication peripherals, FreeRTOS integration, and production firmware practices.
| # | Title |
|---|---|
| 1 | STM32 Toolchain and ARM Architecture |
| 2 | GPIO and Clock Tree |
| 3 | Timers PWM and Input Capture |
| 4 | UART with DMA and Interrupts |
| 5 | SPI and I2C HAL vs Registers |
| 6 | ADC with DMA and Analog Watchdog |
| 7 | Debugging with SWD and GDB |
| 8 | FreeRTOS on STM32 |
| 9 | Low-Power and Production Firmware |
embedded-programming-stm32/
├── lesson-0.mdx # Course introduction
├── lesson-1.mdx # STM32 Toolchain and ARM Architecture
├── lesson-2.mdx # GPIO and Clock Tree
├── lesson-3.mdx # Timers PWM and Input Capture
├── lesson-4.mdx # UART with DMA and Interrupts
├── lesson-5.mdx # SPI and I2C HAL vs Registers
├── lesson-6.mdx # ADC with DMA and Analog Watchdog
├── lesson-7.mdx # Debugging with SWD and GDB
├── lesson-8.mdx # FreeRTOS on STM32
├── lesson-9.mdx # Low-Power and Production Firmware
└── README.md
All commands below work on Linux, macOS, and Windows (using Git Bash, PowerShell, or Command Prompt with Git installed).
First time setup (clone the repo once):
git clone https://github.com/SiliconWit/embedded-programming-stm32.git
cd embedded-programming-stm32Every time you start working:
git pull origin mainAlways pull before making changes. This avoids conflicts with other contributors.
After making your changes:
git add .
git commit -m "Brief description of what you changed"
git push origin mainIf you get a push error (someone pushed before you):
git pull origin mainGit will merge the changes automatically in most cases. If there is a conflict, Git will mark the conflicting lines in the file. Open the file, choose which version to keep, then:
git add .
git commit -m "Resolve merge conflict"
git push origin mainTips to avoid conflicts:
- Always
git pull origin mainbefore you start working - Push your changes as soon as you are done, do not hold onto uncommitted work for long
- Coordinate with other contributors so two people are not editing the same file at the same time
- Fork the repository: SiliconWit/embedded-programming-stm32
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/embedded-programming-stm32.git cd embedded-programming-stm32 - Make your changes and commit:
git add . git commit -m "Brief description of what you changed" git push origin main
- Open a Pull Request against
mainon the original repository - Describe what you changed and why in the PR description
- All lesson files use
.mdxformat - Do not use
<BionicText>in this course - Code blocks should include a title attribute:
```c title="uart_dma.c" HAL_UART_Transmit_DMA(&huart2, buffer, len); ```
- Use Starlight components (
<Tabs>,<TabItem>,<Steps>,<Card>) where appropriate - Keep paragraphs concise and focused on practical application
- Include working code examples that readers can compile and flash
Clone the main site repository and initialize submodules:
git clone --recurse-submodules <main-repo-url>
cd siliconwit-com
npm install
npm run devTo test a production build:
npm run buildThis course content is released under the MIT License.