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 :
Hier der komplette CooCox-Projektordner zum Download :