ボタン周辺機器

Button Peripheral

アプリケーションフローを制御するには、接続されたボタンを使用して、ESP32GPIOを介して読み取ることができます。 このAPIは、sepecifc GPIOを初期化し、ボタンが押されたとき、離されたとき、長時間押されたとき、長押しした後に離されたときなどのボタンイベントに関する情報を取得する関数を提供します。 特定のイベントに関する情報を取得するには、button_dev_add_tap_cb()またはbutton_dev_add_press_cb()を使用してコールバック関数を確立します。

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

このAPIの実装は、recorder/pipeline_raw_httpの例で示されています。

Implementation of this API is demonstrated in recorder/pipeline_raw_http example.

APIリファレンス

API Reference

ヘッダーファイル

Header File

関数

Functions
esp_periph_handle_t periph_button_init(periph_button_cfg_t *but_cfg)

esp_peripheralsのボタンペリフェラルハンドルを作成します。

Create the button peripheral handle for esp_peripherals.

Note
この関数によって作成されたハンドルは、esp_periph_destroyが呼び出されたときに自動的に破棄されます
The handle was created by this function automatically destroy when esp_periph_destroy is called
Return
espペリフェラルハンドル
The esp peripheral handle
Parameters
  • but_cfg: しかし構成
    but_cfg: The but configuration

構造体

Structures
struct periph_button_cfg_t

ボタン周辺機器の構成。

The Button peripheral configuration.

Public Members

uint64_t gpio_mask

このボタンペリフェラルに使用するGPIOマスクは、BIT(GPIO_NUM)です。例:GPIO_SEL_36 | GPIO_SEL_36

GPIO Mask using for this Button peripheral, it is BIT(GPIO_NUM), ex: GPIO_SEL_36 | GPIO_SEL_36
int long_press_time_ms

ミリ秒単位の長押し時間、デフォルトは2000ms

Long press duration in milliseconds, default is 2000ms

列挙

Enumerations
enum periph_button_event_id_t

周辺ボタンのイベントID。

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

ボタンが押され、long_press_time_msを超えて保持された場合

When button is pressed and kept for more than long_press_time_ms
PERIPH_BUTTON_LONG_RELEASE

ボタンを離してイベントPERIPH_BUTTON_LONG_PRESSEDが発生したとき

When button is released and event PERIPH_BUTTON_LONG_PRESSED happened