Strona główna Artykuły ARM Przykłady dla STM32 + STM32F10x Standard Peripherals Library
Przykłady dla STM32 + STM32F10x Standard Peripherals Library
Ocena użytkowników: / 43
SłabyŚwietny 
Wpisany przez Freddie Chopin   
Środa, 11 Styczeń 2012 21:35
Spis treści
Przykłady dla STM32 + STM32F10x Standard Peripherals Library
Wspólny początek
Sposób 1
Sposób 2
Sprawdzenie konfiguracji
Outro
Wszystkie strony

Sposób 1 - pliki bazowe z przykładów, biblioteka w folderze projektu

Jest to najprostsza metoda osiągnięcia założonego celu. W sposobie tym kopiujemy po prostu wszystkie potrzebne pliki biblioteki do folderu projektu.

W projekcie (dla większego porządku) tworzymy folder (menu File > New > Folder lub - jak zwykle - menu kontekstowe katalogu projektu) o dowolnej nazwie - np lib - i importujemy do niego (sposób importowania plików przedstawiony został nieco wcześniej w tym artykule) następujące zasoby:

  1. z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport - wszystkie pliki (core_cm3.c i core_cm3.h),
  2. z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x - plik stm32f10x.h oraz system_stm32f10x.h (dla porządku można też zaimportować do folderu lib plik system_stm32f10x.c a następnie skasować go z głównego katalogu projektu, lub można go później przenieść),
  3. z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc - wszystkie pliki,
  4. z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src - wszystkie pliki.

Teraz należy dodać do pliku Makefile kilka opcji, które umożliwią poprawną kompilację plików biblioteki. Po otwarciu pliku Makefile w edytorze dokonujemy w nim następujących zmian:

  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 liniach INC_DIRS i SRCS_DIRS dodajemy nazwę stworzonego przez nas katalogu - np. lib,
  4. 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".

W tym momencie możliwa jest już bezbłędna i bezproblemowa kompilacja całego projektu.



Zmieniony: Poniedziałek, 15 Październik 2012 22:24