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

  1. Aby możliwe było korzystanie z wartości zmiennoprzecinkowych w funkcjach printf(), sprintf(), scanf() oraz sscanf(), konieczne jest dodanie parametrów „ -u _printf_float -u _scanf_float” do linii polecenia linkera. Robimy to, klikając prawym przyciskiem myszy na nazwę nowego projektu, z menu kontekstowego, wybierając pozycję „Properties” oraz nawigując do „C/C++ Build” -> „Settings” -> „Miscellaneous” i dopisując do pola „Linker flags” wartość: „ -u _printf_float -u _scanf_float”.
Rys. 8. Dodawanie parametrów wywołania linkera w opcjach projektu programu System Workbench for STM32
  1. Teraz dodamy do projektu cztery pliki, które wykorzystamy do obsługi diod oraz interpretacji opisanych wcześniej ramek. W tym celu, w „Project Explorerze” rozwijamy katalog projektu, klikamy PPM na znajdujący się w nim podkatalog „Inc” i z menu kontekstowego wybieramy opcję „New” -> „File”. W nowym oknie podajemy nazwę pliku, który chcemy utworzyć – „ws2812b.h”, klikamy Finish. Operację ponawiamy również dla pliku “frame_parser.h”. Następnie, w podobny sposób, do katalogu “Src” dodajemy dwa kolejne pliki – „ws2812b.c” oraz “frame_parser.c”. Dalej, uzupełniamy nowo dodane pliki zawartością listingów 2, 3, 4 i 5, oraz modyfikujemy zawartość pliku “main.c”, zgodnie z listingiem 1. Kompilujemy program i wgrywamy go na nasz mikrokontroler (ikony młotka i robaka na pasku narzędziowym).
Rys. 9. Drzewo katalogów po poprawnym dodaniu plików

List. 1. Szablon modyfikacji pliku main.c

List. 2. Zawartość pliku Inc/frame_parser.h
List. 3. Zawartość pliku Src/frame_parser.c
List. 4. Zawartość pliku Inc/ws2812b.h
List. 5. Zawartość pliku Src/ws2812b.c

Do pobrania

Autor: