ashwatermelon

ashwatermelon

ESP-IDF學習筆記第一節: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 引腳,是一個二進制數每位表示一個 GPIO 引腳(這邊寫 "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 庫,這個不用在意,我只是調用它的 delay 函數來按鍵消抖而已。

然後就是編譯,在那之前我們要先導入 vscode 配置文件,在命令欄裡搜索並選擇

image

接著先清楚一下編譯數據,然後才點右邊的編譯

image

編譯完成後我們選擇好端口並燒錄,我這邊是 CH340USB 轉串口,所以選擇 UART 串口燒錄就行

image

下面是最終實現效果:

1757400713781

1757400704290

那麼 GPIO 就到這裡,什麼?還有其他 GPIO 函數(API)?哈,我們不學。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。