This repository is a collection of my personal notes and projects related to STM32, GD32, and MG32 microcontrollers. It is organized into three main directories and may not be fully complete.
- STM32
- Contains projects and libraries for STM32 microcontrollers.
- GD32
- Contains projects and libraries for GD32 microcontrollers.
- MG32
- Contains projects and libraries for MG32 microcontrollers.
To work with the projects in this repository, you may need:
- Keil MDK: Integrated Development Environment for ARM microcontrollers. Download Keil MDK
- STM32CubeMX: Optional but useful for generating initialization code for STM32. Download STM32CubeMX
- STM32CubeIDE: Alternative to Keil MDK that integrates CubeMX functionality. Download STM32CubeIDE
- Visual Studio Code: Useful for editing and debugging code, but not necessary. Download VS Code
- Clone this repository:
git clone https://github.com/Yen-Lung-Huang/ARM-Microcontroller.git
- Initialize submodules:
cd ARM-Microcontroller git submodule update --init --recursive --remote
Refer to the Notion Page for detailed instructions on setting up Keil projects and tips for efficient development.
- Using VS Code with Keil: Enhances your coding and debugging experience. Video Tutorial.
- Auto-Alignment in Keil: Improves code readability. Use Artistic Style for formatting.
- Download Artistic Style.
- Copy
Astyle.exe
to the Keil installation directory. - Configure Keil to use Artistic Style via the Tools menu.
- Keil MDK crashes with ST-Link debugger: Replace the
STLinkUSBDriver.dll
in your MDK installation directory. - Invalid ROM Table error: Adjust settings in Keil.
- Runtime Error: HardFault_Handler: Configure CubeMX Project Manager settings for heap and stack sizes.
We welcome contributions! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
For any questions or suggestions, please open an issue or contact the repository owner.
For further details and tips, visit the Notion Page.