About stm32-hal-development
A development skill for CubeMX-based STM32 projects, guiding peripheral configuration, code generation, and application or BSP work. It emphasizes hardware constraints, interrupt safety, and avoiding edits to generated code that belong in the `.ioc` configuration.
Key features
- 01Follows a CubeMX project workflow
- 02Keeps custom code in USER CODE regions
- 03Uses peripheral and HAL references as needed
- 04Reuses BSP template files
- 05Prioritizes interrupt and regeneration safety
Use cases
- 01Add application logic to an STM32 project
- 02Develop sensor or bus drivers
- 03Create a new BSP module
- 04Maintain CubeMX-generated projects safely
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ leokemp223/ embed-ai-tool --skill stm32-hal-developmentAfter installing, type/stm32-hal-developmentin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlassets/bsp-template.cbsp-template.hreferences/core-guidelines.mdhal-quick-reference.mdoverview.mdperipheral-driver-guide.mdtroubleshooting-guide.mdusage-examples.mdDetails
From the project READMESTM32 HAL Development
Treat this skill as the working playbook for CubeMX-based STM32 projects.
Workflow
- Read references/core-guidelines.md first.
- Keep all custom code inside
USER CODEregions unless the project has an explicit non-CubeMX extension point. - Configure peripherals in CubeMX, regenerate code, then add application or BSP logic.
- Read additional references only as needed:
- references/peripheral-driver-guide.md for sensor and bus drivers
- references/hal-quick-reference.md for API lookups
- references/troubleshooting-guide.md for failure analysis
- references/usage-examples.md for implementation patterns
- Reuse assets/bsp-template.c and assets/bsp-template.h when starting a new BSP module.
Notes
- Prioritize hardware constraints, interrupt safety, and regeneration safety over local code convenience.
- Do not modify CubeMX-generated initialization files directly when the same change belongs in the
.iocconfiguration.
Comments
Markdown supported