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 ライブラリを呼び出しているのが見えますが、これは気にしないでください。単にデバウンスのために delay 関数を呼び出しているだけです。
次にコンパイルですが、その前に vscode の設定ファイルをインポートする必要があります。コマンドバーで検索して選択します。
次に、コンパイルデータをクリアしてから、右側のコンパイルボタンをクリックします。
コンパイルが完了したら、ポートを選択して書き込みます。ここでは CH340USB からシリアルポートに変換しているので、UART シリアルポートで書き込めば大丈夫です。
以下は最終的な実装効果です:
これで GPIO はここまでです。何ですか?他の GPIO 関数(API)がある?はは、私たちは学びません。