Unfortunately, you can’t flash firmware to STM32 with «Arduino» easiness, but I’ll describe how to do it.
First of all, you need separate hardware programmer, for example ST-Link V2 Mini
You need to connect it to dev mini board and wiring is simple:
ST-Link STM32F103C8T6 3.3V --- 3.3V GND --- GND SWDIO --- DIO SWCLK --- DCLK
Then you have to download from st.com and install ST-Link Utility. When you connect programmer first time, it is recommended to upgrade firmware of programmer itself. Open ST-Link Utility program and choose in menu ST-Link -> Firmware update, then click Device Connect and if newer firmware is available, you will see something like this:
Click Yes and newer firmware will be installed.
Then you have to open file with firmware and choose Target -> Connect. If your wiring between programmer and board is correct, you can see info about your MCU:
The next step is necessary and it’s full chip erase. Choose Target -> Erase Chip.
Then you have to choose Target -> Program and thats all!
If my firmware for Pedal & Buttons controller already flashed to the board and needs to updated or reflashed than programmer will can’t connect to the board. Its because I disabled SWD and used its pins as normal GPIO. So in this case you have to do Connect under Reset
- choose Target -> Settings in ST-Link utility
- choose Hardware Reset in Reset Mode
- push and hold Reset button on the board
- click OK in ST-Link utility
- release Reset button
ST-Link utility should now connect to stm board and you can flash a newer firmware. (don’t forget to make full chip erase!)
PS. If you have another development board, for example STM32F4Discovery, you can use its build-in programmer. In this case you need to remove both CN3 jumpers and use Disco’s SWD connector this way:
STM32F4Discovery STM32F103C8T6 3.3V --- 3.3V PIN2 --- DCLK PIN3 --- GND PIN4 --- DIO
Something like this: