Minimalna płytka rozwojowa systemu STM32F103C8T6
Informacje o produkcie
Minimalny moduł płytki rozwojowej systemu STM32F103C8T6 ARM STM32 to płytka rozwojowa oparta na mikrokontrolerze STM32F103C8T6. Został zaprojektowany do programowania przy użyciu Arduino IDE i jest kompatybilny z różnymi klonami Arduino, odmianami i płytkami innych firm, takimi jak ESP32 i ESP8266.
Płytka, znana również jako Blue Pill Board, działa z częstotliwością około 4.5 razy wyższą niż Arduino UNO. Można go używać do różnych projektów i można go podłączyć do urządzeń peryferyjnych, takich jak wyświetlacze TFT.
Elementy wymagane do tworzenia projektów z tą płytką obejmują płytkę STM32, programator FTDI, kolorowy wyświetlacz TFT, przycisk, małą płytkę stykową, przewody, power bank (opcjonalnie w trybie autonomicznym) i konwerter USB na port szeregowy.
Schematyczny
Aby podłączyć płytkę STM32F1 do kolorowego wyświetlacza TFT opartego na 1.8 ST7735 i przycisku, postępuj zgodnie z połączeniami pin-to-pin opisanymi na dostarczonym schemacie.
Konfigurowanie Arduino IDE dla STM32
- Otwórz środowisko Arduino IDE.
- Przejdź do Narzędzia -> Tablica -> Menedżer tablicy.
- W oknie dialogowym z paskiem wyszukiwania wyszukaj „STM32F1” i zainstaluj odpowiedni pakiet.
- Poczekaj na zakończenie procedury instalacji.
- Po instalacji płyta STM32 powinna być teraz dostępna do wyboru na liście płytek Arduino IDE.
Programowanie płytek STM32 za pomocą Arduino IDE
Od samego początku Arduino IDE demonstrowało chęć obsługi wszystkich rodzajów platform, od klonów Arduino i odmian różnych producentów po płytki innych firm, takie jak ESP32 i ESP8266. W miarę jak coraz więcej osób zapoznaje się z IDE, zaczynają one obsługiwać coraz więcej płyt, które nie są oparte na chipach ATMEL. W dzisiejszym tutorialu przyjrzymy się jednej z takich płyt. Przeanalizujemy, jak zaprogramować płytkę rozwojową STM32F32C103T8 opartą na STM6 za pomocą Arduino IDE.
Płytka STM32, która zostanie wykorzystana w tym samouczku, to nic innego jak płytka rozwojowa STM32F103 oparta na chipie STM8F6C32T1, powszechnie nazywana „niebieską pigułką” ze względu na niebieski kolor jej płytki drukowanej. Blue Pill napędzany jest potężnym, 32-bitowym procesorem ARM STM32F103C8T6, taktowanym zegarem 72 MHz. Płyta działa na poziomach logicznych 3.3 V, ale jej piny GPIO zostały przetestowane pod kątem tolerancji 5 V. Chociaż nie jest wyposażony w Wi-Fi ani Bluetooth, jak warianty ESP32 i Arduino, oferuje 20 KB pamięci RAM i 64 KB pamięci flash, co czyni go odpowiednim do dużych projektów. Posiada również 37 pinów GPIO, z których 10 można wykorzystać do czujników analogowych, ponieważ mają one włączoną funkcję ADC, a także inne, które obsługują SPI, I2C, CAN, UART i DMA. Jak na płytę, która kosztuje około 3 dolarów, zgodzicie się ze mną, że są to imponujące specyfikacje. Podsumowanie wersji tych specyfikacji w porównaniu z wersją Arduino Uno pokazano na poniższym obrazku.
W oparciu o powyższe specyfikacje, częstotliwość, z jaką działa Blue Pill, jest około 4.5 razy wyższa niż w przypadku Arduino UNO, w dzisiejszym samouczku, jako byłyampJak korzystać z płytki STM32F1, podłączymy ją do wyświetlacza TFT o przekątnej 1.44″ i zaprogramujemy, aby obliczał stałą „Pi”. Zauważymy, ile czasu zajęło płycie uzyskanie wartości i porównamy ją z czasem, jakiego potrzebuje Arduino Uno na wykonanie tego samego zadania.
Wymagane komponenty
Do zbudowania tego projektu wymagane są następujące komponenty;
- Płyta STM32
- Programista FTDI
- Kolorowy TFT
- Naciśnij przycisk
- Mała deska do krojenia chleba
- Przewody
- Powerbank
- Konwerter USB na port szeregowy
Jak zwykle wszystkie komponenty użyte w tym samouczku można kupić, korzystając z załączonych linków. Power bank jest jednak potrzebny tylko wtedy, gdy chcesz wdrożyć projekt w trybie autonomicznym.
Schematyczny
- Jak wspomnieliśmy wcześniej, podłączymy płytkę STM32F1 do kolorowego wyświetlacza TFT 1.8″ ST7735 wraz z przyciskiem.
- Przycisk zostanie użyty do poinstruowania tablicy, aby rozpoczęła obliczenia.
- Połącz komponenty w sposób pokazany na schemacie poniżej.
Aby ułatwić replikację połączeń, poniżej opisano połączenia typu pin-to-pin pomiędzy STM32 a wyświetlaczem.
STM32 – ST7735
Jeszcze raz przejrzyj połączenia, aby upewnić się, że wszystko jest tak, jak powinno, ponieważ zwykle jest to nieco skomplikowane. Po wykonaniu tej czynności przystąpiliśmy do konfigurowania płytki STM32 do programowania za pomocą Arduino IDE.
Konfigurowanie Arduino IDE dla STM32
- Podobnie jak w przypadku większości płytek innych niż Arduino, należy wykonać pewne czynności konfiguracyjne, zanim będzie można używać płytki z Arduino IDE.
- Wiąże się to z instalacją płytki file albo za pośrednictwem Menedżera płytek Arduino, albo pobierając z Internetu i kopiując files do folderu sprzętu.
- Ścieżka Board Manager jest mniej uciążliwa, a ponieważ STM32F1 znajduje się na liście płyt, pójdziemy tą drogą. Zacznij od dodania łącza do płytki STM32 do list preferencji Arduino.
- Idź do File -> Preferencje, a następnie wprowadź to URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) w polu wskazanym poniżej i kliknij OK.
- Teraz przejdź do Narzędzia -> Tablica -> Menedżer tablicy, zostanie otwarte okno dialogowe z paskiem wyszukiwania. Szukaj STM32F1 i zainstaluj odpowiedni pakiet.
- Procedura instalacji zajmie kilka sekund. Następnie płytka powinna być dostępna do wyboru na liście płytek Arduino IDE.
Kod
- Kod zostanie napisany w taki sam sposób, jak każdy inny szkic projektu Arduino, z tą tylko różnicą, że sposób odniesienia do pinów.
- Aby móc łatwo opracować kod dla tego projektu, użyjemy dwóch bibliotek, które są modyfikacjami standardowych bibliotek Arduino w celu zapewnienia ich kompatybilności z STM32.
- Będziemy korzystać ze zmodyfikowanej wersji bibliotek Adafruit GFX i Adafruit ST7735.
- Obie biblioteki można pobrać za pomocą dołączonych do nich linków. Jak zwykle zrobię krótki podział kodu.
- Kod zaczynamy od zaimportowania dwóch bibliotek, z których będziemy korzystać.
- Następnie definiujemy piny STM32, do których podłączone są piny CS, RST i DC wyświetlacza LCD.
- Następnie tworzymy definicje kolorów, aby ułatwić późniejsze używanie kolorów według ich nazw w kodzie, zamiast według ich wartości szesnastkowych.
- Następnie ustawiamy liczbę iteracji, przez które ma przejść tablica, oraz czas odświeżania paska postępu.
- Po wykonaniu tej czynności tworzymy obiekt biblioteki ST7735, który będzie używany do odwoływania się do wyświetlacza w całym projekcie.
- Wskazujemy również pin STM32, do którego podłączony jest przycisk i tworzymy zmienną przechowującą jego stan.
- Po wykonaniu tej czynności przechodzimy do funkcji void setup().
- Zaczynamy od ustawienia pinMode() pinu, do którego podłączony jest przycisk, aktywując wewnętrzny rezystor podciągający na pinzie, ponieważ przycisk łączy się z masą po naciśnięciu.
- Następnie inicjujemy komunikację szeregową i ekran, ustawiając tło wyświetlacza na czarne i wywołując funkcję print() w celu wyświetlenia interfejsu.
- Następna jest funkcja void pętli(). Funkcja pustej pętli jest dość prosta i krótka, dzięki zastosowaniu bibliotek/funkcji.
- Zaczynamy od odczytania stanu przycisku. Jeżeli przycisk został wciśnięty, usuwamy aktualny komunikat na ekranie za pomocą metody RemovePressKeyText() i rysujemy zmieniający się pasek postępu za pomocą funkcji DrawBar().
- Następnie wywołujemy funkcję obliczania początkowego, aby uzyskać i wyświetlić wartość Pi wraz z czasem potrzebnym na jej obliczenie.
- Jeśli przycisk nie zostanie naciśnięty, urządzenie pozostanie w trybie bezczynności, a ekran będzie wymagał naciśnięcia klawisza w celu interakcji z nim.
- Na koniec na końcu pętli wstawiane jest opóźnienie, aby dać trochę czasu przed narysowaniem „pętli”.
- Pozostała część kodu to funkcje wywoływane w celu realizacji zadań od narysowania słupka do obliczenia Pi.
- Większość tych funkcji została opisana w kilku innych tutorialach dotyczących korzystania z wyświetlacza ST7735.
- Pełny kod projektu jest dostępny poniżej i znajduje się w sekcji pobierania.
Przesyłanie kodu do STM32
- Przesyłanie szkiców do STM32f1 jest nieco skomplikowane w porównaniu ze standardowymi płytami kompatybilnymi z Arduino. Aby przesłać kod na płytkę, potrzebujemy konwertera USB na port szeregowy opartego na FTDI.
- Podłącz konwerter USB na port szeregowy do STM32, jak pokazano na schemacie poniżej.
Oto mapa pin-to-pin połączenia
FTDI-STM32
- Po wykonaniu tej czynności zmieniamy położenie zworki stanu płytki na pozycję pierwszą (jak pokazano na poniższym gifie), aby wprowadzić płytkę w tryb programowania.
- Następnie naciśnij raz przycisk resetowania na płycie i jesteśmy gotowi do przesłania kodu.
- Upewnij się, że na komputerze wybrałeś „Generic STM32F103C board” i wybierz serial jako metodę przesyłania, po czym możesz nacisnąć przycisk przesyłania.
- Po zakończeniu przesyłania zmień zworkę stanu na pozycję Ojej Spowoduje to przejście płytki w tryb „uruchamiania” i powinno teraz zacząć działać w oparciu o przesłany kod.
- W tym momencie możesz odłączyć FTDI i zasilić płytkę przez USB. Jeśli kod nie zostanie uruchomiony po włączeniu zasilania, upewnij się, że zworka została prawidłowo przywrócona i podłącz zasilanie do płyty.
Demonstracja
- Po ukończeniu kodu wykonaj opisany powyżej proces przesyłania, aby przesłać kod do konfiguracji.
- Powinieneś zobaczyć wyświetlacz, jak pokazano na obrazku poniżej.
- Naciśnij przycisk, aby rozpocząć obliczenia. Powinieneś zobaczyć, jak pasek postępu przesuwa się stopniowo do końca.
- Na koniec procesu wyświetlana jest wartość Pi wraz z czasem trwania obliczeń.
- Ten sam kod jest zaimplementowany w Arduino Uno. Wynik pokazano na obrazku poniżej.
- Porównując te dwie wartości widzimy, że „Blue Pill” jest ponad 7 razy szybszy od Arduino Uno.
- Dzięki temu idealnie nadaje się do projektów wymagających intensywnego przetwarzania i ograniczeń czasowych.
- Niewielki rozmiar Blue Pill służy również jako zaletatage tutaj, ponieważ jest tylko trochę większy od Arduino Nano i można go używać w miejscach, gdzie Nano nie będzie wystarczająco szybki.
Dokumenty / Zasoby
![]() |
STM32 STM32F103C8T6 Minimalna płytka rozwojowa systemu [plik PDF] Instrukcja obsługi STM32F103C8T6 Minimalna płytka rozwojowa systemu, STM32F103C8T6, Minimalna płytka rozwojowa systemu, Płytka rozwojowa systemu, Płytka rozwojowa, Płytka |