STM32 Praca w środowisko Arduino_IDE – Miganie diodą Blink

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.json

    Nastę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:

/*
Blink

Turns 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/Products

modified 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 AIIoT

This 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:

/*
Blink

Turns 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/Products

modified 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 AIIoT

This 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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *