Best use case
stm32-hal is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
STMicroelectronics STM32 HAL and Low-Level driver expertise
Teams using stm32-hal should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/stm32-hal/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How stm32-hal Compares
| Feature / Agent | stm32-hal | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
STMicroelectronics STM32 HAL and Low-Level driver expertise
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# STM32 HAL/LL Skill ## Overview This skill provides expert-level support for STMicroelectronics STM32 microcontrollers, including HAL driver usage, Low-Level (LL) driver optimization, and STM32CubeMX integration. ## Capabilities ### STM32CubeMX Integration - Configuration file interpretation - Code generation customization - Pin and peripheral assignment - Clock tree configuration - Middleware integration ### HAL Driver Usage - HAL initialization and configuration - Callback registration and handling - DMA integration with HAL - Interrupt mode operations - Polling mode operations - HAL timeout handling ### Low-Level (LL) Drivers - LL driver optimization - Direct register access patterns - HAL to LL migration - Mixed HAL/LL usage - Performance-critical implementations ### Clock Configuration - Clock tree setup and optimization - PLL configuration - Peripheral clock gating - Clock source selection - HSE/HSI/LSE/LSI configuration ### DMA Configuration - DMA stream/channel selection - Circular and normal modes - Double buffer configuration - DMA interrupt handling - Memory-to-memory transfers ### Peripheral Configuration - GPIO configuration and modes - Timer configuration (PWM, input capture) - ADC/DAC setup and calibration - Communication peripherals (UART, SPI, I2C) - USB device/host configuration ### Power Management - Sleep and stop mode entry - Standby mode configuration - Low-power run mode - Wake-up source configuration - Voltage scaling ## Target Processes - `bsp-development.js` - STM32 BSP implementation - `device-driver-development.js` - STM32 driver development - `dma-optimization.js` - DMA configuration and tuning - `low-power-design.js` - STM32 power optimization - `hardware-bring-up.js` - STM32 board bring-up ## Dependencies - STM32CubeMX - STM32 HAL/LL libraries - STM32CubeIDE (optional) - Device-specific firmware package ## Usage Context This skill is invoked when tasks require: - STM32 peripheral configuration - HAL/LL driver implementation - Clock tree optimization - DMA setup and tuning - Power mode configuration ## Family Support - STM32F0, F1, F2, F3, F4, F7 - STM32G0, G4 - STM32H5, H7 - STM32L0, L1, L4, L4+, L5 - STM32U5 - STM32WB, WL ## Example Configurations ### UART with DMA ```c huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; HAL_UART_Init(&huart1); HAL_UART_Receive_DMA(&huart1, rx_buffer, RX_SIZE); ``` ### LL GPIO Toggle ```c LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5); LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_5); LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_5); ```
Related Skills
process-builder
Scaffold new babysitter process definitions following SDK patterns, proper structure, and best practices. Guides the 3-phase workflow from research to implementation.
babysitter
Orchestrate via @babysitter. Use this skill when asked to babysit a run, orchestrate a process or whenever it is called explicitly. (babysit, babysitter, orchestrate, orchestrate a run, workflow, etc.)
yolo
Run Babysitter autonomously with minimal manual interruption.
user-install
Install the user-level Babysitter Codex setup.
team-install
Install the team-pinned Babysitter Codex workspace setup.
retrospect
Summarize or retrospect on a completed Babysitter run.
resume
Resume an existing Babysitter run from Codex.
project-install
Install the Babysitter Codex workspace integration into the current project.
plan
Plan a Babysitter workflow without executing the run.
observe
Observe, inspect, or monitor a Babysitter run.
model
Inspect or change Babysitter model-routing policy by phase.
issue
Run an issue-centric Babysitter workflow.