STM32CubeMX, czyli efektowny koniec MicroXplorera

Firma STMicroelectronics udostępniła bezpłatną aplikację o nazwie STM32CubeMX, która znacznie ułatwia początkowe etapy tworzenia oprogramowania dla mikrokontrolerów STM32 – zapewniając graficzną konfigurację wbudowanych bloków peryferyjnych, ułatwia także dobór mikrokontrolera optymalnego do realoizacji konkretnych zadań. Aplikacja jest dostępna na stronie producenta. W tej chwili w STM32CubeMX w pełni wspiera (w tym pozwala oszacować pobór prądu) tylko mikrokontrolery z rodziny STM32F4, szczegóły na temat obsługi pozostałych mikrokontrolerów znajdują się w podręczniku UM1718.

 

 

Tworzenie projektu

Po zainstalowaniu aplikacji możemy przystąpić do utworzenia pierwszego projektu, w tym celu wybieramy z menu File>New Project, w okienku, które się pojawi wybieramy mikrokontroler, który chcemy wykorzystać. Okienko możemy również wykorzystać w celu dobrania mikrokontrolera do naszej aplikacji, korzystając z listy z lewej strony (Peripheral Selection) możemy filtrować mikrokontrolery wg. peryferiów w jakie są wyposażone, możemy np. zobaczyć listę mikrokontrolerów mających co najmniej 2 interfejsy SPI i 2 interfejsy UART. Dodatkowo na górze okienka możemy wybrać rodzinę mikrokontrolerów jakie nas interesują.

  STM32CubeMX – generator konfiguracji dla STM32

Rys. 1. Okno tworzenia nowego projektu

Po wybraniu typu mikrokontrolera klikamy OK, w ten sposób utworzyliśmy projekt, powinniśmy widzieć na ekranie okno projektu z czterema zakładkami.

Zakładka Pinout

W tej zakładce możemy skonfigurować linie mikrokontrolera, w lewej części okna widzimy listę dostępnych peryferiów, w prawej części – widok mikrokontrolera z opisami funkcji linii. Aby skonfigurować linie peryferiów wystarczy w lewej części okna włączyć (dla prostszych peryferiów, np. ADC) bądź wybrać ich funkcję (dla tych bardziej skomplikowanych, jak np. Timer). Bardzo cenną cechą konfiguratora jest to, że nie pozwoli nam włączyć peryferiów które korzystałyby z linii dla których już wcześniej wybraliśmy inną funkcję. Peryferia, przy uruchomieniu których powstałby konflikt oznaczone są żółtym trójkątem jeśli wykluczone są niektóre funkcje lub czerwonym kółkiem, jeśli żadna z funkcji nie jest dostępna. Można również „ręcznie” wybrać funkcję linii klikając odpowiadające jej wyprowadzenie w prawej części okna. Dodatkowo konfigurator umożliwia dołączenie do projektu bibliotek Middleware obsługujących m.in. system plików czy USB.

Rys. 2. Zakładka Pinout

Rys. 2. Zakładka Pinout

 

Zakładka Clock Configuration

W tej zakładce mamy wizualny konfigurator zegarów, który również wychwytuje i zaznacza błędy w konfiguracji.

Rys. 3. Zakładka Clock Configuration

Rys. 3. Zakładka Clock Configuration

Zakładka Configuration

W tej zakładce mamy dostęp do bardziej szczegółowej konfiguracji peryferiów i dołączanych bibliotek.

Rys. 4. Zakładka Configuration

Rys. 4. Zakładka Configuration

Rys. 5. Okno konfiguracji interfejsu I2S

Rys. 5. Okno konfiguracji interfejsu I2S

Zakładka Power Consumption Calculator

Ta zakładka umożliwia szczegółową analizę poboru prądu, można w niej tworzyć „scenariusze” zawierające etapy pracy mikrokontrolera, dla każdego etapu możemy wybrać tryb pracy, włączone peryferia, częstotliwość zegara itp.

Rys. 6. Zakładka Power Consumption Calculator

Rys. 6. Zakładka Power Consumption Calculator

Po dokonaniu wszystkich ustawień wybieramy w menu Project>Generate Code, w oknie Project Settings wybieramy lokalizację projektu oraz środowisko, dla którego projekt ma być przygotowany (do wyboru są: Keil MDK, EWARM oraz TrueStudio). Po zatwierdzeniu możemy przystąpić do edycji kodu w wybranym IDE, w wygenerowanych plikach znajdują się sekcje kodu użytkownika, które nie zostaną naruszone przy ponownym generowaniu kodu z STM32CubeMX.

Jacek Zbysiński

Autor: