[8] STM32CUBE w przykładach (obsługa Bluetootha)

Oprócz peryferialu SPI, uruchamiamy również peryferial UART, dokładniej opisany w części trzeciej niniejszego kursu. Możemy wybrać dowolny peryferial – USART1, USART2 lub USART6. W przykładzie wykorzystany został peryferial USART1 na pinach PA10 (RX) i PA9 (TX).

Rys. 2. Konfiguracja wyprowadzeń w generatorze konfiguracji STM32CubeMX
  1. Na tym etapie możemy już podłączyć do płytki pasek diod oraz moduł Bluetooth. Pin VCC (czerwony kabel) z paska diod WS2812b podłączamy do pinu 5V płytki, pin GND (czarny) do jednego z pinów GND oraz sygnałowy (zielony) do pinu D11. Wyprowadzenia modułu Bluetooth podłączamy w następujący sposób: VCC (modułu) do piny 3V3 (płytki KA-Nucleo), GND do pinu GND oraz piny TX/RX modułu do pinów D2/D8.
  2. W kolejnej zakładce – „Clock Configuration” – zwyczajowo ustawiamy częstotliwość pracy wejściowego oscylatora kwarcowego – u mnie 8 MHz, przełączamy źródło sygnału wchodzącego na główną pętlę PLL – „PLL Source Mux” na „HSE”, jako źródło sygnału taktującego dla całego układu wybierzmy pętlę PLL – przełącznik „System Clock Mux” ustawiamy na pozycję „PLLCLK”. Teraz musimy jeszcze ustawić pożądaną częstotliwość taktowania naszego układu. Nie będzie to jednak, jak zazwyczaj, maksymalna dozwolona wartość. Musimy dobrać ją wspólnie z dzielnikiem częstotliwości wchodzącej na peryferial SPI tak, aby możliwa była transmisja sygnału jedynki i zera dla diod w odpowiednim czasie. Robimy to identycznie jak w numerze marcowym – ponieważ transmisja pojedynczego bitu sygnału sterującego diodami trwa 1.25 μs, a jego sygnał jest generowany przez 8 bitów nadawanych interfejsem SPI. Każdy taki bit powinien trwać 0.15625 μs, co przekłada się na częstotliwość taktowania peryferialu SPI równą 6.4 MHz. Aby uzyskać taką wartość, ustawiamy wartość częstotliwości “HCLK (MHz)” na 51.2 MHz oraz wartość dzielnika, w kolejnym etapie konfiguracji na 8.
Rys. 3. Konfiguracja sygnału taktującego w generatorze konfiguracji STM32CubeMX
  1. Teraz przechodzimy do zakładki “Configuration”. Z pola „Connectivity”, wybieramy pozycję „SPIx”, gdzie x to nr wybranego interfejsu SPI, i przechodzimy do jego konfiguracji. Opcją, która zmieniamy, jest wartość preskalera, wybrana w poprzednim kroku.

Rys. 4. Konfiguracja peryferialu SPI w generatorze konfiguracji STM32CubeMX

 

  1. Teraz przechodzimy do konfiguracji peryferialu UART – ponownie z pola „Connectivity”, wybieramy pozycję “USARTx”. Tym razem jednak zmienić musimy inny parametr – “Baud Rate”. W polu tym wprowadzamy wartość “9600 Bits/s”. Następnie, nie wychodząc z okna konfiguracji peryferialu USART, przechodzimy do zakładki “NVIC Settings”, zaznaczamy tam jedyne znajdujące się na liście przerwanie i zatwierdzamy zmiany przyciskiem “OK”.
Rys. 5. Ustawianie parametrów pracy peryferialu USART w generatorze konfiguracji STM32CubeMX
Rys. 6. Włączanie przerwania peryferialu USART w generatorze konfiguracja STM32CubeMX
  1. Na tym etapie możemy już zapisać ustawienia i wygenerować projekt, a następnie zaimportować go w środowisku IDE, w sposób przedstawiony w poprzednich częściach – klikamy ikonę zębatki na pasku narzędziowym, wybieramy w polu „Toolchain / IDE” opcję „SW4STM32” i zapisujemy pliki projektu w wybranym miejscu. Następnie otwieramy IDE System Workbench for STM32, zamykamy planszę powitalną (X), w ramce „Project Explorer” klikamy prawym przyciskiem myszy i z menu kontekstowego wybieramy opcję „Import…”, w nowym oknie, klikamy kolejno: „General”, „Existing Projects into Workspace”, „Next”, wybieramy lokalizację plików projektu oraz zatwierdzamy import przyciskiem „Finish”.
Rys. 7. Eksport projektu z generatora konfiguracji STM32CubeMX

Do pobrania

Autor: