Ahojte,
tento článok bude skôr pre programátorov, a ľudí čo sa radi zabávajú s hardvérom.
Možno ste už videli niekde túto dosku:
Volá sa slangovo „Blue Pill“ (modrá tabletka). Oproti Arduinu, ktoré je 8-bitové, 32-bitová a má MCU s 64/128kB FLASH a 20kB RAM (oproti 2 kB na Arduine).
Cena je pritom veľmi priaznivá – táto doska sa dá zohnať za menej ako 2€.
Tu sú parametre:
Microcontroller | STM32F103C8 |
Flash | 64 KB/128 KB |
RAM | 20 KB |
Clock Speed | 72 MHz |
USB connector | Micro-B (varying quality) |
User LED(s) | PC13 (blue; lights when PC13 is LOW) |
User button(s) | None |
RTC Crystal | Yes |
ST-Link header | Yes |
A tu je pinout:
V tomto článku ukážem, ako túto dosku debugovať pomocou programátora ST-LINK V2 a vývojového prostredia Visual Studio Code.
Takže prvé čo budeme potrebovať, je ST-LINK V2 programátor. Dá sa kúpiť za približne ďaľšie 2€ napríklad tu.
Na programovanie a debugovanie budeme používať rozhranie SWD. Znamená to Serial Wire Debug.
Prvým krokom je nainštalovať aktuálnu verziu Arduino IDE. Stiahnite si inštalátor z tadeto.
V Arduiňáckom „Správcovi dosiek“ nainštalujte „Arduino SAMD Boards“, (nie „Ardiuno SAM Boards“).
Stiahnite si tento repozitár a rozbaľťe ho do
C:\Users\<meno>\Documents\Arduino\hardware
Dávajte pozor, nech sa adresár volá Arduino_STM32, nie Arduino_STM32-master!
V Arduine skompilujte a uploadnite akýkoľvek program, napríklad Blink.
Nainštalujte si Visual Studio Code z tadeto.
Nainštalujte vo Visual Studio Code tento doplnok. To by malo zároveň nainštalovať aj „C/C++ for Visual Studio Code“.
Stiahnite si tento archív s binárkou OpenOCD a skriptami, a rozbaľte ho do hardware adresára.
Takže budete mať takúto štruktúru:
Arduino_STM32 ├── drivers │ ├── boards.txt │ └── win ├── openocd.exe ├── STM32F1 ... scripts ├── interface │ └── stlink-v2.cfg ├── mem_helper.tcl └── target ├── stm32f1x.cfg └── swj-dp.tcl
Môžete skompilovať (Ctrl+Alt+R), uploadnúť (Ctrl+Alt+U) a konečne debugovať (F5). Pred debugovaním si ale nastavte nejaký breakpoint cez F9.
Takto to vyzerá, keď to funguje (ja to mám rozbehnuté aj na Mac OS):
Ako vidíte, keď myšou pri zastavenom stave prídem nad nejakú premennú, ukáže sa mi jej aktuálna hodnota.
Happy coding folks!
73 de Tekk OM7AXT