An STM32 microcontroller is traditionally programmed through its JTAG interface. That interface, when used with actual, works-for-a-living professional development software, will let you flash code into your MCU but also debug with breakpoints and even analyze your code’s variables in real time as it executes. That’s how we roll.