What should I use to develop on STM32 ?

If you like it, share it

Up to now there is a loot of IDE (Compiler and Debugger) for the Cortex Mx, in this page there is a little list of the principal IDE that are used for develop on the STM32.

In addition to the development environment is also necessary JTAG or SWD emulator that is normally provided by the vendors listed above and also directly by STM (ST-LINK).
There are, of course, other vendors that offer compatible JTAG/SWD emulators with leading development environments.

All the STM32 library are release in ANSI C and CMSIS so is it possible use it under all C-Compiler (IDE).
The toolchain directly supported by STM also contain the configuration files of themselves.

  • Free IDE for STM32
    • CUBE-MX or CUBE-IDE is the configurator and/or a camplete IDE also for debug (CUBE-IDE) and the library for all the STM32
    • mBed is free ARM compiler – See  my tutorial here.
    • ATOLLIC now is free but now is also incuded in CUBE-IDE
    • KEIL is free for STM32L0xx (Cortex M0+), STM32G0xx (Cortex M0+) and STM32F0xx (Cortex M0).
      For other STM32 it is free up to 32K of exe.
    • emIDE
    • AC6 – System WorkBench
    • Now is possible use some STM32 in the ARDUINO IDE.
      For more info see this tutorial.
  • High level language
    • MicroEJ (Java) is a leading vendor of cost-driven embedded software solutions for the smart digital world.
    • MicroPythonHere there are the FW ready to use on different STM32 boards.
    • MATLAB and Simulink are here.
  • Our suggested KIT for developing on STM32
    • CUBE-MX or CUBE-IDE – Remember to install also the library of the STM32xx that you want to use.
      Run CUBE-MX and select INSTALL/REMOVE (it’s on the right in CUBE-MX window) – See this video tutorial.
      For CUBE-IDE see this tutorial.
    • ATOLLIC (free for all STM32) or this release of KEIL that is free only for STM32F0/L0/G0
    • ST-LINK – Low cost emulators
    • ST-LINK-Utility – More info concerning ST-LINK-Utility, ST-LINK emulator, etc, are here.
    • STM Studio or STM32CubeMonitor – Helps debug and diagnose STM32 applications while they are running by reading and displaying their variables in real-time.
      More info are here.
    • Tera-Term – This is useful if you need to use the USB virtual com
    • ST-MCU-Finder (for select the right STM32 to use)
    • Download and unzip the library of the STM32xx that you want to use.
      Inside the library there are a loot of examples ready to use.
      See this tutorial (Cube-MX).
    • Last but not least, I suggest you to start to develop using the NUCLEO boards or the DISCOVERY boards.
      More info are here.