Overview
STM32CubeProgrammer is the official programming software developed by STMicroelectronics for STM32 microcontrollers. It supports programming, flashing, and debugging via multiple interfaces including STLink, UART, JTAG, and USB DFU modes. The tool supports Windows, Linux, and MacOS platforms, making it versatile for development and production use.
Download STM32CubeProgrammer
The latest official version of STM32CubeProgrammer can be downloaded from STMicroelectronics' website:
STM32CubeProgrammer Official Download Page
- Supports Windows 7, 10, 11
- Supports Linux distributions (Ubuntu, Debian, etc.)
- Supports MacOS
Get Software
Part Number | General Description | Latest Version | Download | All Versions |
---|---|---|---|---|
STM32CubePrg-Lin | STM32CubeProgrammer software for Linux | 2.19.0 | Get latest 📥 | 📥 |
STM32CubePrg-Mac | STM32CubeProgrammer software for Mac | 2.19.0 | Get latest 📥 | 📥 |
STM32CubePrg-W32 | STM32CubeProgrammer software for Win32 | 2.19.0 | Get latest 📥 | 📥 |
STM32CubePrg-W64 | STM32CubeProgrammer software for Win64 | 2.19.0 | Get latest 📥 | 📥 |
STMicroelectronics recommends always keeping your software up to date.
Installation Guide
- Download the installer package from the official ST page.
- Run the installer and follow on-screen instructions.
- Install required drivers for STLink or USB interfaces.
- Restart your computer if prompted.
- Launch STM32CubeProgrammer and verify the connection to your STM32 device.
Usage Scenarios
1. Using STLink Interface
Connect your STM32 device via STLink debugger/programmer. STM32CubeProgrammer will auto-detect the device and allow flash programming, memory viewing, and erasing.
2. USB DFU Mode
Put your STM32 device into DFU mode to update firmware via USB without an external debugger.
3. UART Programming
Use UART bootloader interface for programming when other interfaces are unavailable.
4. JTAG and SWD Interfaces
Advanced debug and programming using JTAG/SWD connectors.
Watch this tutorial video:
STM32CubeProgrammer vs STLink Utility
Feature | STM32CubeProgrammer | STLink Utility |
---|---|---|
Supported Devices | All STM32 families | Older STM32 devices only |
Interface | STLink, UART, JTAG, DFU | STLink only |
OS Support | Windows, Linux, MacOS | Windows only |
Command Line Support | Yes | No |
Flash Programming | Yes, with extended features | Basic |
Command Line Usage
STM32CubeProgrammer supports command line operations, useful for automation and batch programming. Example usage:
STM32_Programmer_CLI -c port=SWD -w firmware.bin 0x08000000
Where -c port=SWD
specifies the connection type, and -w
writes the firmware binary to the target flash starting at the specified address.
Error Codes & Troubleshooting
- Device not detected: Check USB or STLink connection, update drivers.
- Programming failed: Verify firmware integrity, device boot mode.
- Unknown errors: Restart the software, try different USB ports.
Frequently Asked Questions
- Q1: What platforms does STM32CubeProgrammer support?
- A: STM32CubeProgrammer supports Windows 7/10/11, Linux distributions (such as Ubuntu, Debian), and MacOS.
- Q2: Can I use STM32CubeProgrammer without STLink hardware?
- A: Yes, STM32CubeProgrammer supports USB DFU (Device Firmware Upgrade) mode and UART bootloader mode, allowing programming without STLink hardware.
- Q3: Is there a command line interface (CLI) for STM32CubeProgrammer?
- A: Yes, STM32CubeProgrammer provides a CLI (Command Line Interface) called
STM32_Programmer_CLI
. It allows you to program STM32 devices via command line, useful for automation or production line programming.
Example to view help options:
STM32_Programmer_CLI.exe --help
- Q4: Where can I download the latest STM32CubeProgrammer?
- A: You can download the latest version directly from the official STMicroelectronics website:
STM32CubeProgrammer Official Download Page - Q5: Does STM32CubeProgrammer support automated programming in mass production?
- A: Yes, using the CLI interface, STM32CubeProgrammer can be integrated into scripts for automated mass production programming and testing environments.