ESP8266-12F 中斷


 

 

外部中斷:

基於ESP8266的NodeMcu的數字IO的中斷功能是通過attachInterrupt,detachInterrupt函數所支持的。除了D0/GPIO16,中斷可以綁定到任意GPIO的引腳上【D0-D10】。所支持的標准中斷類型有:CHANGE(改變沿,電平從低到高或者從高到低)、RISING(上升沿,電平從低到高)、FALLING(下降沿,電平從高到低)
 attachInterrupt(pin, function, mode);      設置觸發中斷的引腳

pin:要設置中斷編號,注意,這里不是引腳編號

function:中斷發生時運行的函數, 這個函數不帶任何參數,不返回任何內容

Interrupt type/mode:它定義中斷被觸發的條件方式

CHANGE:改變沿,引腳電平從低變為高或者從高變為低時觸發中斷。
RISING:上升沿,引腳電平從低變為高時觸發中斷。
FALLING:下降沿,引腳電平從高變為低時觸發中斷

返回值: 無

detachInterrupt(pin);    取消指定引腳的中斷

pin:中斷號

返回值: 無

digitalPinToInterrupt(pin);獲取指定引腳的中斷號

pin:要獲取中斷號的GPIO引腳

返回值: 中斷號

 

引腳對應的中斷號:

D1:5       D2:4       D4:2      D5:14       D6:12       D7:13     D8:15  

  

 

例子一:

將NodeMcu的D2引腳設置為上升沿中斷。在D2上外接一個按鍵,按鍵通過電阻下拉到地。當發生中斷的時候,我們在串口監視器上打印“Hello ESP8266”

 

 

void setup() {
    Serial.begin(115200);//設置串口波特率
    attachInterrupt(digitalPinToInterrupt(D2), InterruptFunc, RISING);//設置中斷號、響應函數、觸發方式
}
 
void loop() {
  delay(2000);
    
}
void InterruptFunc(){   //中斷響應函數
  Serial.println("Hello ESP8266");
}

 

不知道為何串口打印的數據 不對 ??????????? 

 

 

 

 

 

 

 

 

 

 

 

 

 

天子驕龍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM