ESP8266學習歷程 GPIO配置

2021-10-04 14:50:14 字數 3686 閱讀 9266

soc晶元之上的韌體,以及基於esp-12模組的硬體。

xgpio6至gpio11通常連線到esp8266板上的flash晶元。因此,不建議使用這些引腳。

使用esp8266的gpio最起碼得包含相關引腳的標頭檔案吧

#include

"driver/gpio.h"

gpio的初始化設定與stm32提供的標準庫大同小異,都是通過乙個結構體來進行配置,如下:

typedef

struct

gpio_config_t;

中斷模式:

typedef

enum

gpio_int_type_t;c

用例1(不開啟中斷)

#define gpio_output_io_0    15

#define gpio_output_io_1 16

#define gpio_output_pin_sel ((1ull/1ull-->unsigned long long

void

(void

)

用例2(開啟中斷)

void

(void

)

設定gpio輸出電平

//引數:gpio編號,輸出電平狀態:0低電平,1高電平,返回的是成功與否狀態碼

esp_err_t gpio_set_level

(gpio_num_t gpio_num, uint32_t level)

;

讀取gpio引腳電平

//引數:gpio編號,返回的是電平狀態

intgpio_get_level

(gpio_num_t gpio_num)

;

gpio_isr_registergpio_install_isr_service的區別

gpio_isr_register函式是統一為所有的gpio口註冊乙個全域性的isr,即任何的gpio中斷觸發,都會呼叫該中斷處理函式;

esp_err_t gpio_isr_register

(void

(*fn)

(void*)

,void

*arg,

int no_use, gpio_isr_handle_t *handle_no_use)

;

引數

解析fn

中斷處理函式。

arg傳遞給中斷處理函式的引數。

no_use

no_use為了與esp32相容,這個引數沒有實際意義,可以用0來填充。

handle_no_use

指標返回控制代碼。為了與esp32相容,這個引數沒有實際意義,可以用null來填充。

gpio_install_isr_service函式與gpio_isr_register不相容,gpio_install_isr_service主要是開啟中斷服務,不針對某乙個gpio,需要搭配gpio_isr_handler_add使用;

esp_err_t gpio_install_isr_service

(int no_use)

;

此處的no_use為了與esp32相容,這個引數沒有實際意義,可以用0來填充。

esp_err_t gpio_isr_handler_add

(gpio_num_t gpio_num, gpio_isr_t isr_handler,

void

*args)

;

引數

解析gpio_num

指定gpio口

isr_handler

對應的中斷處理函式

args

傳遞給中斷處理函式的引數

更多介面原型,可以檢視sdk目錄/include/driver/gpio.h

我的github

我的個人部落格

csdn

ESP8266學習歷程 1 GPIO配置

soc晶元之上的韌體,以及基於esp 12模組的硬體。使用esp8266的gpio最起碼得包含相關引腳的標頭檔案吧 1 include driver gpio.h gpio的初始化設定與stm32提供的標準庫大同小異,都是通過乙個結構體來進行配置,如下 123 4567 typedef struct...

ESP8266 利用網頁控制ESP8266

說明 發出 gpio 1 就輸出 亮燈 gpio 0 就輸出 滅燈 include const char ssid jia 這裡輸入wifi名稱 const char password lm654321 這裡輸入wifi密碼 wifiserver server 80 開啟板子的80埠 int val...

ESP8266學習筆記

因為此模式可控性高且方便,所以推薦此模式 測試指令 at 應用模式設定 at cwmode 3 ap 模式 1 esp8266模組作為熱點,實現手機或電腦直接與模組通訊,實現區域網無線控制。sta 模式 2 esp8266模組通過路由器連線網際網路,手機或電腦通過網際網路實現對裝置的遠端控制 sta...