日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出

發(fā)布時間:2024/3/12 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?本次寫這篇文章是自己做一下學(xué)習(xí)記錄,如有錯誤,還請大家斧正!!!

日后及時修正!感謝支持!

?歡迎大家的關(guān)注????????點贊? ? ? ? 收藏? ? ? ? 留言


目錄

前言

? ? ? ? 一、新建工程

? ? ? ? 二、項目函數(shù)介紹? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? 三、代碼編寫

? ? ? ? 四、編譯、燒錄、運行

結(jié)束語


前言

? ? ? ? 中斷是每一位單片機開發(fā)者比較實用的一個基本外設(shè)、無論你是學(xué)習(xí)51單片機還是STM32等,都會接觸到這個項目。可以說中斷的合理使用可以讓你的程序執(zhí)行起來有意想不到的效果。這里除了中斷,還會介紹兩個高級的輸入輸出函數(shù)。


?一、新建工程

? ? ? ? 首先打開Arduino IDE,點擊 文件——> 點擊新建,就會生成一個新的工程模板了。 (還可以點任務(wù)欄中“折了一角的書頁”快速新建)。

?然后給項目重命名,然后再保存。

?這樣一個新的工程就建好了。


二、項目函數(shù)介紹

1. 中斷函數(shù)

? ? ? ? 無論什么單片機都具備中斷功能,這款單片機也不例外,接下來就帶大家接觸它的中斷服務(wù)函數(shù)。

? ? ? ? 這里我就來解釋以下這個函數(shù)說明一下它的功能及用途:

? (1)attachInterrupt(pin, ISR, mode)函數(shù)

功能作用
響應(yīng)中斷的處理程序——中斷函數(shù),當(dāng)中斷觸發(fā)后,ESP8266便會運行這個函數(shù)。
對中斷引腳進行初始化配置,以開啟ESP8266的外部中斷功能
attachInterrupt(pin, ISR, mode) 參數(shù)說明
pin指定引腳編號的配置
value中斷函數(shù)名
mode中斷模式。有以下兩種常用模式:LOW:低電平觸發(fā);HIGH:高電平觸發(fā);

? (2)detachInterrupt(pin)函數(shù)

功能參數(shù)

如果你不需要使用外部中斷了,你可以用中斷分離函數(shù)detachInterrupt() 來關(guān)閉中斷功能。

需要禁用中斷的引腳。

2. 高級輸入輸出函數(shù)? ?? ? ?

(1)tone()函數(shù)

功能作用
主要用于ESP8266連接蜂鳴器或揚聲器發(fā)聲。
可以讓指定引腳產(chǎn)生一個占空比為50%的指定頻率的方波。
tone(pin, frequency) //或 tone(pin, frequency, duration) 參數(shù)說明
pin需要輸出方波的引腳
frequency輸出的頻率,unsigned int型
duration方波持續(xù)的時間,單位毫秒。如果沒有該參數(shù),ESP8266將持續(xù)發(fā)出設(shè)定的音調(diào),直到你改變發(fā)聲頻率。

(2)noTone(pin)函數(shù)

功能參數(shù)

停止指定引腳上的方波輸出。

需要停止方波輸出的引腳

(3)pulseIn()函數(shù)

? ? ? ?檢測指定引腳上的脈沖信號寬度。

說明:例如當(dāng)要檢測高電平脈沖時,pulseIn() 會等待指定引腳輸入的電平變高,當(dāng)變高后開始記時,直到輸入電平變低,停止計時。pulseln() 函數(shù)會返回這個脈沖信號持續(xù)的時間,即這個脈沖的寬度。函數(shù)還可以設(shè)定超時時間。如果超過設(shè)定時間,仍未檢測到脈沖,則會退出pulseIn()函數(shù)并返回0。當(dāng)沒有設(shè)定超時時間時,pulseIn() 會默認1秒鐘的超時時間。

pulseIn(pin, value) //或 pulseIn(pin, value, timeout) 參數(shù)說明
pin需要讀取脈沖的引腳
value需要讀取的脈沖類型,HIGH或LOW
timeout超時時間,單位微秒,數(shù)據(jù)類型為無符號長整型

返回值

返回脈沖寬度,單位微秒,數(shù)據(jù)類型為無符號長整型。如果在指定時間內(nèi)沒有檢測到脈沖,則返回0。

?三、代碼編寫

示例:用中斷控制下的按鍵點亮LED燈

????????示例代碼如下:

void setup() {// put your setup code here, to run once:pinMode(2,OUTPUT);pinMode(5,INPUT); }void LED_On(void) {digitalWrite(2,LOW); }//void LED_Off(void) //{ // digitalWrite(2,HIGH);detachInterrupt(5); //}void loop() {// put your main code here, to run repeatedly: // if(digitalRead(5)==0) // {attachInterrupt(5,LED_On,LOW);detachInterrupt(5); // } // else // LED_Off(); }

?四、編譯、燒錄、運行

? ? ? ? 在我前一篇博文就介紹了如何編譯、燒錄,這里就不再過多贅述了,還望諒解!

應(yīng)視頻的插入不便,這里就用圖片代替,抱歉;其功能可以一目了然,當(dāng)按鍵按下觸發(fā)中斷LED燈就被點亮了。


結(jié)束語

? ? ? ? 關(guān)于此次基于Arduino IDE開發(fā)的ESP8266(ESP-12F)項目4?——中斷及高級輸入輸出項目的介紹就講到這里了,此次教程的重點在于中斷的使用,關(guān)于高級輸入輸出函數(shù)我給出鏈接供大家學(xué)習(xí)。調(diào)聲函數(shù) (arduino.cn);pulseIn() (arduino.cn)。如果什么問題請再評論區(qū)留言。

? ? ? ? 接下來會陸陸續(xù)續(xù)發(fā)布一些其他的教程,敬請期待!感謝大家的支持!如有覺得這篇文章對你有所幫助的,還請點贊、收藏吧!

總結(jié)

以上是生活随笔為你收集整理的基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。