Bluepill i Blackpill – niedrogie płytki rozwojowe dla mikrokontrolerów STM32
Programowanie w płytki Blackpill w Arduino
Płytka Blackpill zawiera bootloader, który umożliwia programowanie płytki za pomocą środowiska Arduino.
Aby zaprogramować płytkę za pomocą Arduino należy zainstalować na komputerze STM32CubeProgrammer. Program ten jest dostępny na stronie: https://www.st.com/en/development-tools/stm32cubeprog.html. Procedura instalacji jest standardowa, taka jak dla wszystkich programów w systemie Windows.
Po instalacji programu potrzebujemy jeszcze biblioteki Stm32Duino, umożliwiającej obsługę płytek z mikrokontrolerami STM32 na platformie Arduino.
Konfiguracja środowiska
Aby zainstalować STM32Duino, w programie Arduino IDE należy wejść w menu Plik > Preferencje. Następnie w polu Dodatkowe adresy URL do menadżera płytek należy wpisać adres
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
Następnie należy zatwierdzić wybór przyciskiem OK.
Rysunek 5. Wklejanie adresu STM32Duino do menadżera płytek Arduino
W kolejnym kroku należy wejść w menu Narzędzia > Płytka > Menadżer Płytek. Następnie w pasku na górze okna menadżera płytek trzeba wpisać „stm32”. Ukaże się pakiet STM32 Cores, który należy zainstalować przyciskiem Instaluj. Instalacja pakietu może zająć kilka minut.
Rysunek 6. Pakiet STM32 Cores w menadżerze płytek Arduino
Aby ustawić płytkę Blackpill jako płytkę, na którą będzie wgrywane oprogramowanie, należy w menu wybrać Narzędzia > Płytka > Generic STM32F4 Series. W menu Narzędzia > Board part number należy ustawić Blackpill F401CC dla płytki z mikrokontrolerem STM32F401 lub Blackpill F411CE dla płytki z mikrokontrolerem STM32F411. Należy też ustawić w Narzędzia > U(S)ART support opcję Enabled (generic ‘Serial’), natomiast opcję Narzędzia > USB support na CDC (generic serial supercede U(S)ART.). Na koniec w menu Narzędzia > Upload method trzeba ustawić opcję STM32CubeProgrammer (DFU).
Rysunek 7. Prawidłowo ustawione opcje w menu narzędzia dla płytek Blackpill
Podłączanie płytki do komputera
Aby prawidłowo podłączyć płytkę Blackpill w trybie DFU do komputera należy podczas podłączania przytrzymać przycisk BOOT0. To czy płytka została prawidłowo podłączona można sprawdzić w programie STM32CubeProgrammer. Wystarczy w pasku po lewej stronie ustawić tryb połączenia na USB i nacisnąć przycisk odświeżający. Jeśli w opcji Port ukaże się USB1 i poniżej numer seryjny płytki, to oznacza, że podłączenie płytki przebiegło prawidłowo. Warto zauważyć, że połączenie tego programu z płytką za pomocą przycisku Connect może spowodować, że STM32CubeProgrammer „zajmie” płytkę i środowisko Arduino IDE nie będzie już mogło wgrać kodu.
Rysunek 8. Wykrywanie płytki przez STM32CubeProgrammer
Przykładowy kod
Teraz można wgrać kod na płytkę za pomocą Arduino IDE. Poniżej zaprezentowałem prosty kod mrugający diodą LED zamontowaną na płytce.
Listing 1. Przykładowy kod w Arduino na płytkę Blackpill
void setup() { pinMode(PC13, OUTPUT); } void loop() { digitalWrite(PC13, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }
Jest to właściwie przerobiony kod ze standardowego przykładu na Arduino pod nazwą „Blink”. Jedyną zmianą jest wpisanie odpowiedniego pinu – PC13 – do którego na płytce podłączona jest dioda.
Aby wgrać kod na płytkę należy nacisnąć przycisk „Wgraj” ze strzałką w prawo. Nastąpi teraz kompilacja programu i zostanie on umieszczony na płytce, a następnie uruchomiony.