LinkedIn YouTube Facebook
Szukaj

Wstecz
Artykuły

STM32F0Discovery: jak zacząć

Aby zobaczyć efekt działania aplikacji należy podłączyć płytkę STM32F0Discovery do portu USB oraz wejść w tryb debugowania (rysunek 7) i uruchomić wykonywanie programu (rysunek 8). Aby zatrzymać wykonywanie się programu należy wcisnąć przycisk po prawej stronie obok przycisku Start, a przycisk po lewej stronie zeruje układ.

 

Rys. 7. Ikona wejścia w tryb <EM>Debug</EM>

Rys. 7. Ikona wejścia w tryb Debug

 

 

Rys. 8. Ikona inicjująca uruchomienie programu

Rys. 8. Ikona inicjująca uruchomienie programu

 

 

Przykładowa aplikacja

Elementy jakie znajdują się na płytce zestawu i jakie zostaną wykorzystane w prostej aplikacji to (fotografia 9):

  • zielona dioda LD3 podłączona do wyprowadzenia mikrokontrolera PC9,
  • niebieska dioda LD4 podłączona do wyprowadzenia mikrokontrolera PC8,
  • przycisk USER podłączony do wyprowadzenia mikrokontrolera PA0.

 

Fot. 9. Rozmieszczenie na płytce STM32F0Discovery elementów wykorzystanych w przykładowym projekcie

Fot. 9. Rozmieszczenie na płytce STM32F0Discovery elementów wykorzystanych w przykładowym projekcie

 

 

Według schematu elektrycznego (rysunek 10) aby włączyć LED należy podać logiczną jedynkę na wyprowadzenie GPIO (skonfigurowane jako wyjście), do którego jest ona podłączona, natomiast aby ją zgasić należy podać na tę linię logiczne zero. Przycisk USER jest podłączony do linii PA0, a pomiędzy nim, a ujemnym biegunem źródła zasilania znajduje się rezystor. Jest to więc układ typu pull-down, dlatego stan niski odczytany na wejściu linii PA0 oznacza, że przycisk nie jest wciśnięty.

 

Rys. 10. Schemat podłączenia LED i przycisku do linii GPIO mikrokontrolera

Rys. 10. Schemat podłączenia LED i przycisku do linii GPIO mikrokontrolera

 

 

Funkcje pomocnicze zdefiniowane w pliku stm32f0_discovery.c

Plik stm32f0_discovery.h zawiera kilka definicji stałych wykorzystywanych w programie:

typedef enum { LED3 = 0, LED4 = 1 } Led_TypeDef;
typedef enum { BUTTON_USER = 0 } Button_TypeDef;
typedef enum { BUTTON_MODE_GPIO = 0, BUTTON_MODE_EXTI = 1 } ButtonMode_TypeDef;

#define LEDn                             2
#define LED3_PIN                         GPIO_Pin_9
#define LED3_GPIO_PORT                   GPIOC
#define LED3_GPIO_CLK                    RCC_AHBPeriph_GPIOC
#define LED4_PIN                         GPIO_Pin_8
#define LED4_GPIO_PORT                   GPIOC
#define LED4_GPIO_CLK                    RCC_AHBPeriph_GPIOC

#define BUTTONn                          1
#define USER_BUTTON_PIN                  GPIO_Pin_0
#define USER_BUTTON_GPIO_PORT            GPIOA
#define USER_BUTTON_GPIO_CLK             RCC_AHBPeriph_GPIOA
#define USER_BUTTON_EXTI_LINE            EXTI_Line0
#define USER_BUTTON_EXTI_PORT_SOURCE     EXTI_PortSourceGPIOA
#define USER_BUTTON_EXTI_PIN_SOURCE      EXTI_PinSource0
#define USER_BUTTON_EXTI_IRQn            EXTI0_1_IRQn
Autor: Jan Szemiet