Button Peripheral¶
To control application flow you may use buttons connected and read through the ESP32 GPIOs. This API provides functions to initialize sepecifc GPIOs and obtain information on button events such as when it has been pressed, when released, when pressed for a long time and released after long press. To get information on particular event, establish a callback function with button_dev_add_tap_cb()
or button_dev_add_press_cb()
.
Application Example¶
Implementation of this API is demonstrated in recorder/pipeline_raw_http example.
API Reference¶
Header File¶
Functions¶
Create the button peripheral handle for esp_peripherals.
- Note
- The handle was created by this function automatically destroy when
esp_periph_destroy
is called - Return
- The esp peripheral handle
- Parameters
but_cfg
: The but configuration
Structures¶
The Button peripheral configuration.
Public Members
GPIO Mask using for this Button peripheral, it is BIT(GPIO_NUM), ex: GPIO_SEL_36 | GPIO_SEL_36
Long press duration in milliseconds, default is 2000ms
Enumerations¶
Peripheral button event id.
Values:
-
PERIPH_BUTTON_UNCHANGE
= 0¶ No event
-
PERIPH_BUTTON_PRESSED
¶ When button is pressed
-
PERIPH_BUTTON_RELEASE
¶ When button is released
-
PERIPH_BUTTON_LONG_PRESSED
¶ When button is pressed and kept for more than
long_press_time_ms
-
PERIPH_BUTTON_LONG_RELEASE
¶ When button is released and event PERIPH_BUTTON_LONG_PRESSED happened
-