01-LED-Library (STM32F4)


Auf dem Discovery Board gibt es 4 LEDs die vom User benutzt werden können.
Mit dieser Library können die LEDs einfach geschaltet werden.

1
2
3
4
LED4 (green) an PD12
LED3 (orange) an PD13
LED5 (red) an PD14
LED6 (blue) an PD15

Voraussetzungen :

1
2
Benutzte Module der CooCox-IDE : GPIO
Benutzte Librarys : keine

Enumerationen :

1
2
3
4
5
6
typedef enum {
  LED_GREEN = 0,
  LED_ORANGE = 1
  LED_RED = 2,
  LED_BLUE = 3
}LED_NAME_t;

:

1
2
3
4
typedef enum {
  LED_OFF = 0, // LED AUS
  LED_ON       // LED EIN
}LED_STATUS_t;

Funktionen :

1
2
3
4
5
void UB_Led_Init(void);                                     // zum init der LEDs
void UB_Led_On(LED_NAME_t led_name);                        // um eine LED einzuschalten
void UB_Led_Off(LED_NAME_t led_name);                       // um eine LED auszuschalten
void UB_Led_Toggle(LED_NAME_t led_name);                    // um eine LED zu toggeln
void UB_Led_Switch(LED_NAME_t led_name, LED_STATUS_t wert); // um eine LED zu schalten

Beispiel :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//--------------------------------------------------------------
// File : main.c
// Datum : 10.02.2013
// Version : 1.0
// Autor : UB
// EMail : mc-4u(@)t-online.de
// Web : www.mikrocontroller-4u.de
// CPU : STM32F4
// IDE : CooCox CoIDE 1.7.0
// Module : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo der LED-Library
// Hinweis : Diese zwei Files muessen auf 8MHz stehen
// "cmsis_boot/stm32f4xx.h"
// "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------
 
#include "main.h"
#include "stm32_ub_led.h"
 
void Delay(volatile uint32_t nCount) {
  while(nCount--) {
  }
}
 
int main(void) {
 
  SystemInit(); // Quarz Einstellungen aktivieren
 
  UB_Led_Init(); // Init der LEDs
 
  UB_Led_On(LED_GREEN); // gruene LED einschalten
 
  while(1) {
    Delay(5000000);
    UB_Led_Toggle(LED_RED); // rote LED blinkt
  }
}

Beschreibung :

1
2
3
4
5
6
Funktion :
-grüne LED wird dauerhaft eingeschaltet
-rote LED blinkt zyklisch
 
Librarys die für das Beispiel benutzt werden :
-stm32_ub_led

Library um eigene LEDs erweitern :

Falls noch mehr LEDs benutzt werden sollen (oder weniger) dann muss folgendes gemacht werden :

1. Im H-File müssen alle LEDs in der Enumeration “LED_NAME_t” aufgelistet werden und die Anzahl im Define “LED_ANZ” muss entsprechend angepasst werden.

2. Im C-File müssen in der Struktur “LED_t” alle LEDs eingetragen und den entsprechenen Ports und Port-Pins zugewiesen werden.

Hier die Library zum Download :

ub_stm32f4_led_v101

Hier der komplette CooCox-Projektordner zum Download :

Demo_01_Led


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.