| title | Sensor and Actuator Interfacing with STM32 - Collaboration Guide | ||
|---|---|---|---|
| description | Contributing guide for Sensor and Actuator Interfacing with STM32 course content | ||
| tableOfContents | true | ||
| sidebar |
|
Read this course at: https://siliconwit.com/education/sensor-actuator-interfacing-stm32/
A hands-on course covering sensor, actuator, and communication module interfacing on the STM32 Blue Pill (STM32F103C8T6) using STM32CubeIDE and HAL. Topics include GPIO, ADC, PWM, I2C, SPI, UART, RFID, stepper motors, DMA, CAN bus, and a multi-sensor capstone project.
| # | Title |
|---|---|
| 1 | GPIO and Digital Interfacing |
| 2 | ADC and Analog Signal Conditioning |
| 3 | PWM, Timers, and Motor Control |
| 4 | I2C Protocol: Sensors and Displays |
| 5 | SPI Protocol: Storage and Displays |
| 6 | UART Devices: GPS, Bluetooth, and RS-485 |
| 7 | RFID, NFC, and Identification Systems |
| 8 | Stepper Motors and Encoder Feedback |
| 9 | DMA, Interrupts, and CAN Bus |
| 10 | Capstone: Multi-Sensor Data Logger |
sensor-actuator-interfacing-stm32/
├── index.mdx
├── gpio-digital-interfacing.mdx
├── adc-analog-signal-conditioning.mdx
├── pwm-timers-motor-control.mdx
├── i2c-sensors-displays.mdx
├── spi-storage-displays.mdx
├── uart-gps-bluetooth-rs485.mdx
├── rfid-nfc-identification.mdx
├── stepper-motors-encoders.mdx
├── dma-interrupts-can-bus.mdx
├── multi-sensor-data-logger.mdx
└── 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/sensor-actuator-interfacing-stm32.git
cd sensor-actuator-interfacing-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/sensor-actuator-interfacing-stm32
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/sensor-actuator-interfacing-stm32.git cd sensor-actuator-interfacing-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="main.c" HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET); ```
- 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
- All pin assignments must be valid for the STM32F103C8T6
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.