I remember that once in the beginning I said that I don’t want to buy a programmer/debugger hardware for learning a new MCU like the STM32 and also STM32s already come with built-in bootloader to facilitate programming via USART just like Arduino. Still the second is true. Well what about the first? To my own surprise I actually acquired a number of STM32-related stuffs since the time I started playing and exploring them. I actually bought both ST-Link 1 and 2 programmer-debuggers and several STM32 boards from Waveshare Electronics (http://www.wvshare.com). I believe learning new stuffs is more valuable than anything else.
ST-Link 1 (AKA ST-Link) and ST-Link v2 are both basically the same programmer/debugger hardware with some minor exceptions. ST-Link 2 has 5V tolerance for JTAG interface, it has a bicolour status LED and it also has a separate programming interface for STM8 micros unlike ST-Link 1. There is also an ISOL version of ST-Link2 that galvanically isolates it from its target using optoelectronics.
’m not going to recite all the feature chatters of ST-Link programmers here. All I’ll say is if you want a device that can save your time and efforts from all the procedure involved with serial bootloader, do pro-level works with STM8/STM32 and debug your codes then you should consider having a ST-Link programmer-debugger. It doesn’t matter much which version it is. For more info on ST-Link programmer-debuggers refer to these links:
There cheap and compact clone variants of ST-Link programmers too but I won’t recommend them simply because they don’t have easy plug-in JTAG interface cable, they have poor documentation and they are not genuine. Y the way I’m not tell not to buy those. I leave it to the reader. In my experience buying a genuine programmer is always a long-run benefit while keeping a clone alongside the genuine one is like bonus.