STM32CUBE + STM32STUDIO: jak używać tych narzędzi?

Ostatnimi pinami jakie musimy skonfigurować są piny odpowiedzialne za komunikacje czujników umieszczonych na shieldzie z mikrokontrolerem. Z dokumentacji wiemy, że wszystkie czujniki są dołączone do wspólnej magistrali I2C. Konfigurujemy odpowiednie piny:

Jak widać są one obecnie zaznaczone żółtym kolorem. Aby zapewnić poprawne działanie wybieramy Pinout>I2C1>I2C>I2C

Aby ułatwić sobie pracę, ustawiono nazwy pinów odpowiedzialnych za obsługę LED-RGB. Zróbmy to samo z pinami odpowiedzialnymi za obsługę Joysticka. Wybieramy zakładkę Configuration i w tabeli, w kolumnie System klikamy w GPIO:

Po wybraniu tej opcji wyskoczy okno pozwalające na konfigurację pinów:

Ustawiamy User Label wszystkich pinów zgodnie z ich zastosowaniem, oraz inne ważne opcje. Niech GPIO output level pinów odpowiedzialnych za diody będzie ustawiony na High, a GPIO mode pinów odpowiedzialnych za Joystick niech będzie ustawiony na External Interrupt Mode with Falling edge trigger detection. W efekcie okno powinno wyglądać tak:

Kolejną rzeczą jaką należy skonfigurować jest NVIC. Klikamy w opcje zaraz pod GPIO i włączamy linie odpowiedzialne za przerwania. Konfiguracja powinna wyglądać następująco:

Ostatnia rzecz jaka pozostała do skonfigurowania w CubeMX to interfejs I2C. W kolumnie Connectivity wybieramy I2C i ustawiamy I2C Speed Mode na Fast Mode

Nareszcie możemy wybrać opcję Project>Generate Code.

Pojawi się okno w którym wpisujemy nazwę naszego projektu i folder w którym chcemy go zapisać. Koniecznie zmieniamy Toolchain/IDE na SW4STM32:


Po wygenerowaniu kodu klikamy Open Project, który otworzy się w naszym środowisku System Workbench for STM32. Jeżeli tak się nie stanie można go uruchomić ręcznie z folderu w którym zapisaliśmy projekt.

Gdy projekt się otworzy wybieramy w Project Explorer kolejno: folder_z_nazwą_naszego_projeku>Src>main.c