Home Articles ARM Przykłady dla STM32 + STM32F10x Standard Peripherals Library
Przykłady dla STM32 + STM32F10x Standard Peripherals Library
User Rating: / 47
PoorBest 
Written by Freddie Chopin   
Wednesday, 11 January 2012 21:35
Article Index
Przykłady dla STM32 + STM32F10x Standard Peripherals Library
Wspólny początek
Sposób 1
Sposób 2
Sprawdzenie konfiguracji
Outro
All Pages

Sposób 2 - pliki bazowe z przykładów, biblioteka w innym folderze

W tej metodzie w projekcie wykorzystane są pliki bazowe (startup, skrypt linkera, tablica wektorów i Makefile) z przykładu, a biblioteka znajduje się w dowolnym miejscu.

Jak zwykle najważniejszym etapem jest dodanie do pliku Makefile niezbędnych wpisów. Otwieramy więc plik Makefile w edytorze i wykonujemy w nim następujące czynności:

  1. w liniach CXX_DEFS i C_DEFS dodajemy następujące definicje: -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 (wartość HSE_VALUE oczywiście uzależniona od używanego rezonatora kwarcowego), spowoduje to dołączenie do kodu odpowiednich nagłówków (definicja symbolu USE_STDPERIPH_DRIVER) i odpowiednią konfigurację funkcji które korzystają z wartości częstotliwości zewnętrznego rezonatora kwarcowego (wartość symbolu HSE_VALUE),
  2. w linii C_DEFS dodatkowo dopisujemy jeszcze -DSystemInit=low_level_init_1 - spowoduje to wywołaniem funkcji SystemInit() (z biblioteki) w startupie tuż przed wywołaniem funkcji main() - jest to wymagane przez aktualną konwencję biblioteki,
  3. w linii INC_DIRS dodajemy następujące ścieżki z potrzebnymi nagłówkami:
    • c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
    • c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
    • c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc
  4. w linii SRCS_DIRS dodajemy następujące ścieżki z potrzebnymi plikami źródłowymi:
    • c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
    • c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src
  5. z linii C_WARNINGS usuwamy pozycję -Wstrict-prototypes, aby niezgodne z "czystym" standardem języka C deklaracje funkcji z CMSISa nie zasypały nas ostrzeżeniami, że "function declaration isn't a prototype".

Podając wiele parametrów można rozdzielić je na klika linii przy pomocy znaku backslasha "\" lub powtarzać daną zmienną operatorem "+=" w kolejnych liniach
VAR1 = value1 \
value2 \
value3
VAR2 = value1
VAR2 += value2
VAR2 += value3

W tym momencie projekt można już skompilować i powinno się to odbyć bez błędów, a więc zasadniczo wszystko jest w teorii gotowe.



Last Updated on Monday, 15 October 2012 22:24