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_register與gpio_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...