Post updated with new screens and up-to-date information (2020)! There have been several requests from users to explain more about loading programs into the flash memory of STM32 microcontrollers. There are several ways on how to perform stm32 flash programming. You may enter the STM32 bootloader directly via USART interface and upload the binaries. The more advanced and flexible method is to use an ST-LINK utility – an ST-based adapter, which connects to STM32 board through JTAG interface. Many ST development boards already have this feature included. Otherwise, you can jump-wires from one to another, or get a dedicated portable ST-Link adapter. Also, you can use standard third-party JTAG tools such as J-Link. Finally, you can flash your bootloader that works with any interface (USART, USB, SPI, etc.) The STM32F103RB board Any of these methods are great if they get the job done. In this topic, let us focus on how to perform STM32 flashing by using a bootloader. Today probably, no manufacturer is producing developing boards with RS232 interface. Nevertheless, you like me, probably have a dozen older boards with a serial port. They are great boards still to use in many projects.