W tej części poradnika pokaże jak uruchamiać programy w środowisko Arduino IDE dla płytek STM32
Proces zostanie przedstawiony z wykorzystanie bootloader’a STM32duino, nie jest on niezbędny ale znacząco ułatwi programowanie tych płytek przynajmniej w początkowym etapie.
Jak wgrać bootloader STM32duino możesz dowiedzieć się z mojego innego poradnika.
Jeśli posiadasz już płytkę z wgranym bootloader STM32duino, lub porostu zmieniłeś/formatowałeś komputer nie zapomnij o wgraniu podstawowych składników.
- Sterowniki do usb dla bootloader’a STM32duino:
https://drive.google.com/drive/folders/0BwY2LTXAYDBLZnVqRXE4N0NPSjA
- Definicje płytek:
Potrzebne będzie Arduino IDE w wersji co najmniej 1.6.9.Wchodzimy w Plik>Preferencje i dopisujemy dodatkowy URL do definicji płytek:http://dan.drown.org/arduino/package_STM32duino_index.jsonNastępne w menedżerze płytek (Narzędzia>Płytka>Menedżera płytek…) wyszukujemy i dodajemy płytki STM32F1*
- Pamiętaj STM32 działa na logice 3.3V podając wyższe napięcie uszkodzisz płytkę.
Pierwsze uruchomienie przykładowego programu:
przechodzimy do Narzędzia>Płytka i wybieramy Generic STM32F103C series
następnie przechodzimy do Narzędzia>Upload method: zmienamy na STM32duino-bootloader
kolejno do Narzędzia>Port i wybieramy odpowiedni port w nawiasie obok portu będzie napisane Maple Mini
Teraz załadujemy przykładowy program będzie to Blink
przechodzimy do Plik>Przykłady>(wbudowane przykłady) 01.Basics>Blink
Teraz możemy kliknąć Szkic>Wgraj
OK, CZAS NA ZMIANY W PROGRAMIE
możemy zmienić czas aby sprawdzić czy proces wgrywania przebiega pomyślnie
LED_BUILTIN jest zmienną określoną dla każdej płytki indywidualnie dla STM32 jest to pin PC13, zmienna została już zadeklarowana dodatkowo jest to zmienna statyczna, więc nie możemy jej zmienić, aby zmienić pin musimy
metoda 1 zdefiniować nową zmienną oraz zamienić ją w miejscu zmiennej LED_BUILTIN np. powołując:
static const byte LED = PC13; // jest to zmienna statyczna typu byte(zakres od od 0 do 255) ustawiona na pin PC13
Aby przyspieszyć proces podmiany możemy skorzystać z
Edytuj>Szukaj… i wykożystać linie Zastąp: wpisując LED i klikająć Znajdź i zastąp
Program powinien wyglądać tak:
/*
BlinkTurns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Productsmodified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
modified 15 Sep 2017
by AIIoTThis example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Blink
*/static const byte LED = PC13;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED as an output.
pinMode(LED, OUTPUT);
}// the loop function runs over and over again forever
void loop() {
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
metoda 2 jednak szybszym sposobem jest zdefiniowanie polecenia dla preprocesora który za nas zamieni LED_BUILTIN na żądany przez nas pin
#define LED_BUILTIN PC13
Tak powinien wyglądać program:
/*
BlinkTurns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Productsmodified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
modified 15 Sep 2017
by AIIoTThis example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Blink
*/#define LED_BUILTIN PC13
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Teraz korzystając z schematu wyprowadzeń płytki możemy ustawić zmienną na dowolny pin