ashwatermelon

ashwatermelon

ESP-IDF学習ノート第1節:GPIO

ESP-IDF の学習を続けましょう。まずは GPIO です。
ESP-IDF の GPIO を使用するには、まず GPIO ポートを初期化する必要があります。そのためには、gpio_config () 関数を使用します(ガイドではこれを API と呼んでいます)。

gpio_config () 関数を使用するには、gpio_mode_t 構造体を設定する必要があります。
gpio_mode_t のメンバーには以下が含まれます:

  1. uint64_t pin_bit_mask
    GPIO ピンで、各ビットが 1 つの GPIO ピンを表す 2 進数です(ここでは "1ull<<x" と書きます。x はピン番号を表し、1ull は符号なし長整数の 1 です)

  2. gpio_mode_t mode
    GPIO モード(入力、出力、オープンコレクタ、プッシュプルなどを含む)

  3. gpio_pullup_t pull_up_en
    GPIO プルアップ

  4. gpio_pulldown_t pull_down_en
    GPIO プルダウン

  5. gpio_int_type_t intr_type
    GPIO が割り込みをトリガーするかどうか

設定が完了したら、gpio_config () を呼び出して GPIO の初期化を完了します。
次に、gpio_get_level () を使用して入力ピンのレベルを読み取り、gpio_set_level () を使用して出力ピンのレベルを変更します。

以下は実際の操作で、プロジェクトの新規作成方法も説明します。

まず、新しいプロジェクトウィザードを開きます。

image

プロジェクトの位置と名前、開発ボードを選択します。ここでは ESP-WROOM-32 を使用しており、ESP-WROVER-KIT 3.3V を選択すれば大丈夫です。

次に、右下のこのボタンをクリックします。

image

template を選択すれば大丈夫です。これが空のプロジェクトです。

image

作成が完了したら、自動的にプロジェクトが開かれないことに気づくので、ファイルを開くをクリックして、作成したプロジェクトフォルダを見つけます。

image

main フォルダ内の main.c ファイルを開きます。これでコードを書きます。

image

ここでは、ボタンでオンボード LED を制御する簡単なコードを書きました。freertos ライブラリを呼び出しているのが見えますが、これは気にしないでください。単にデレイ関数を呼び出してボタンのデバウンスを行っているだけです。

次はコンパイルです。その前に、vscode の設定ファイルをインポートする必要があります。コマンドバーで検索して選択します。

image

次に、コンパイルデータをクリアしてから、右側のコンパイルボタンをクリックします。

image

コンパイルが完了したら、ポートを選択して書き込みます。ここでは CH340USB からシリアルポートに変換しているので、UART シリアルで書き込めば大丈夫です。

image

以下が最終的な実装結果です:

1757400713781

1757400704290

これで GPIO はここまでです。何ですか?他の GPIO 関数(API)もあるのですか?はは、私たちは学びません。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。