Welcome to my STM32 learning repository!
This repository documents all my homework and projects while learning the STMicroelectronics STM32F103ZET6 microcontroller. It aims to provide a well-structured and easy-to-understand codebase, hoping to help fellow students who are also learning embedded development.
- C language implementations for embedded systems
- Complete peripheral drivers and application examples
- Code for learning and practicing STM32 development
- Well-structured and modular codebase
- Clone this repository locally:
git clone https://github.com/your_username/stm32_homeworks.git
- Open the project with your favorite IDE (e.g., Keil, STM32CubeIDE)
- Build the code and flash it to your STM32F103ZET6 board
Before you begin, ensure you have the following tools and environment set up:
- IDE: Keil MDK, STM32CubeIDE, or other IDEs supporting ARM Cortex-M
- Hardware: An STM32F103ZET6 development board
- Debugger: ST-Link / J-Link
Project | Description |
---|---|
0.stm32_Template |
Basic STM32 project template |
L03_blink_Light |
LED blinking experiment |
L04_homeworks |
|
L06_bit_Band |
Bit-banding example |
L07_software_pwm |
Software-simulated PWM |
L07_software_pwm(2)_testing |
|
L08_software_pwm_test_Servo |
Controlling a servo with software PWM |
L09_shumaguan |
Digital tube display |
L11_single_key_input |
Single key input detection |
L12_Matrix_Key_Input |
Matrix keypad input |
L12_Matrix_Key_Interrupt |
Matrix keypad scanning via interrupt |
L15_register |
|
L17_1640demo |
|
L19_rotary_encoder |
Rotary encoder |
L20_register_homeworks |
|
L21_1602_demo |
LCD1602 display example |
L21_encoder_demo |
|
L21_flash_demo |
Internal Flash read/write |
L22_flash_demo |
|
L23_RCC_demo |
RCC clock configuration |
L23_SysTick_demo |
SysTick timer |
L27_RCC_RTC |
RTC real-time clock |
L28_RTC_homeworks |
|
L29_NVIC-demo |
NVIC interrupt priority management |
L30_RTC_Time |
|
L46_ADC_demo |
ADC converter example |
RCC_RTC_using_nec |
Pull requests and issues are welcome! If you have any suggestions for improvement, please don't hesitate to contribute and make this project better.
This project is licensed under the MIT License.