It is given in STM32 system memory boot mode APP note that bootloader stored in the internal boot system memory is programmed by ST during production.

Does this mean that if I buy a new STM32 microcontroller and want to load my programs into the microntroller I don't have do the initial in-circuit programming(ICP) for updating flash memory using jtag/swd programmer, and I can directly update the flash memory using USART or USB protocol using Flash demonstrator or DfuSe software?

  • \$\begingroup\$ Could you link this app note here please? \$\endgroup\$
    – pjc50
    Feb 3, 2016 at 15:27
  • \$\begingroup\$ @pjc50 I've added it now. \$\endgroup\$
    – Akpt0
    Feb 3, 2016 at 15:30
  • \$\begingroup\$ I don't see DFU for STM32F103 in that document. Am I missing something? FWIW, I have successfully used the USART bootloader in a new (unprogrammed) STM32F405 device and the DFU bootloader in a new (unprogrammed) STM32F407 device. \$\endgroup\$
    – Tut
    Feb 3, 2016 at 16:13
  • \$\begingroup\$ Yes, DFU is not supported for F103, only USART can be used. So I've to use USART boot loader. I'm new to doing this. Can you help with the procedure of doing this?@Tut \$\endgroup\$
    – Akpt0
    Feb 3, 2016 at 16:27

1 Answer 1


You need to properly set BOOT0(Hi) and BOOT1(Lo) pin on MCU at power on, then it enters in bootloader mode. You have to use USART for loading, then a GUI demonstrator flash loader does all automaticly, after that you have to reset the MCu without BOOT0 set hi.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.