ESP-IDF の学習を続けましょう。まずは GPIO です。
ESP-IDF の GPIO を使用するには、まず GPIO ポートを初期化する必要があります。そのためには、gpio_config () 関数を使用します(ガイドではこれを API と呼んでいます)。
gpio_config () 関数を使用するには、gpio_mode_t 構造体を設定する必要があります。
gpio_mode_t のメンバーには以下が含まれます:
-
uint64_t pin_bit_mask
GPIO ピンで、各ビットが 1 つの GPIO ピンを表す 2 進数です(ここでは "1ull<<x" と書きます。x はピン番号を表し、1ull は符号なし長整数の 1 です) -
gpio_mode_t mode
GPIO モード(入力、出力、オープンコレクタ、プッシュプルなどを含む) -
gpio_pullup_t pull_up_en
GPIO プルアップ -
gpio_pulldown_t pull_down_en
GPIO プルダウン -
gpio_int_type_t intr_type
GPIO が割り込みをトリガーするかどうか
設定が完了したら、gpio_config () を呼び出して GPIO の初期化を完了します。
次に、gpio_get_level () を使用して入力ピンのレベルを読み取り、gpio_set_level () を使用して出力ピンのレベルを変更します。
以下は実際の操作で、プロジェクトの新規作成方法も説明します。
まず、新しいプロジェクトウィザードを開きます。
プロジェクトの位置と名前、開発ボードを選択します。ここでは ESP-WROOM-32 を使用しており、ESP-WROVER-KIT 3.3V を選択すれば大丈夫です。
次に、右下のこのボタンをクリックします。
template を選択すれば大丈夫です。これが空のプロジェクトです。
作成が完了したら、自動的にプロジェクトが開かれないことに気づくので、ファイルを開くをクリックして、作成したプロジェクトフォルダを見つけます。
main フォルダ内の main.c ファイルを開きます。これでコードを書きます。
ここでは、ボタンでオンボード LED を制御する簡単なコードを書きました。freertos ライブラリを呼び出しているのが見えますが、これは気にしないでください。単にデレイ関数を呼び出してボタンのデバウンスを行っているだけです。
次はコンパイルです。その前に、vscode の設定ファイルをインポートする必要があります。コマンドバーで検索して選択します。
次に、コンパイルデータをクリアしてから、右側のコンパイルボタンをクリックします。
コンパイルが完了したら、ポートを選択して書き込みます。ここでは CH340USB からシリアルポートに変換しているので、UART シリアルで書き込めば大丈夫です。
以下が最終的な実装結果です:
これで GPIO はここまでです。何ですか?他の GPIO 関数(API)もあるのですか?はは、私たちは学びません。