02-Button-Library (STM32F746)

Beschreibung :

Auf dem Discovery Board gibt es einen (blauen) Button der vom User benutzt werden kann. Mit dieser Library kann der Status vom Button abgefragt werden.

Module :

1
stm32_ub_button.h, stm32_ub_button.c

Includes :

1
2
#include "stm32_ub_system.h"
#include "stdbool.h";

Enumerationen und Defines:

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
//--------------------------------------------------------------
// Liste aller Buttons
// (keine Nummer doppelt und von 0 beginnend)
//--------------------------------------------------------------
typedef enum 
{
  BTN_USER = 0    // BTN auf dem STM32F746-Discovery
}BUTTON_NAME_t;
 
//--------------------------------------------------------------
// Status eines Buttons
//--------------------------------------------------------------
typedef enum {
  BTN_RELEASED = 0,  // Button losgelassen
  BTN_PRESSED        // Button gedrueckt
}BUTTON_STATUS_t;
 
//--------------------------------------------------------------
// Struktur eines Buttons
//--------------------------------------------------------------
typedef struct {
  BUTTON_NAME_t BUTTON_NAME;  // Name
  GPIO_TypeDef* BUTTON_PORT;  // Port
  const uint16_t BUTTON_PIN;  // Pin
  const uint32_t BUTTON_R;    // Widerstand
  uint8_t BUTTON_AKT;         // Istwert
  uint32_t BUTTON_TIC;        // Timerwert
}BUTTON_t;
 
//--------------------------------------------------------------
#define   BUTTON_INTERVALL    50   // 50ms zum entprellen

Funktionen :

1
2
3
4
5
void UB_Button_Init(void);                               // zum init der Buttons
BUTTON_STATUS_t UB_Button_Read(BUTTON_NAME_t btn_name);  // um einen Button auszulesen (nicht entprellt)
bool UB_Button_OnPressed(BUTTON_NAME_t btn_name);        // true, wenn der Button betätigt ist (entprellt)
bool UB_Button_OnClick(BUTTON_NAME_t btn_name);          // true, beim drücken vom Button (entprellt)
bool UB_Button_OnRelease(BUTTON_NAME_t btn_name);        // true, beim loslassen vom Button (entprellt)

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
38
39
40
41
42
//--------------------------------------------------------------
// File     : main.c
// Datum    : 12.07.2015
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F746
// Board    : STM32F746-Discovery-Board
// IDE      : OpenSTM32
// GCC      : 4.9 2015q2
// Module   : CubeHAL
// Funktion : Hauptprogramm
//--------------------------------------------------------------
 
 
#include "stm32_ub_system.h"
#include "stm32_ub_led.h"
#include "stm32_ub_button.h"
 
 
int main(void)
{
  // init vom System
  UB_System_Init();
 
  // init der LED
  UB_Led_Init();
  // init vom Button
  UB_Button_Init();
 
  while(1) {
    HAL_Delay(100);
    // Test ob Button gedrückt ist
    if(UB_Button_Read(BTN_USER)==BTN_PRESSED) {
      UB_Led_On(LED_GREEN); // gruene LED einschalten
    }
    else {
      UB_Led_Off(LED_GREEN); // gruene LED ausschalten
    }
  }
}

Hier die Library zum Download :

02 = Button : f746_button_v100


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