基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出
?本次寫這篇文章是自己做一下學習記錄,如有錯誤,還請大家斧正!!!
日后及時修正!感謝支持!
?歡迎大家的關注????????點贊? ? ? ? 收藏? ? ? ? 留言
目錄
前言
? ? ? ? 一、新建工程
? ? ? ? 二、項目函數介紹? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? 三、代碼編寫
? ? ? ? 四、編譯、燒錄、運行
結束語
前言
? ? ? ? 中斷是每一位單片機開發者比較實用的一個基本外設、無論你是學習51單片機還是STM32等,都會接觸到這個項目。可以說中斷的合理使用可以讓你的程序執行起來有意想不到的效果。這里除了中斷,還會介紹兩個高級的輸入輸出函數。
?一、新建工程
? ? ? ? 首先打開Arduino IDE,點擊 文件——> 點擊新建,就會生成一個新的工程模板了。 (還可以點任務欄中“折了一角的書頁”快速新建)。
?然后給項目重命名,然后再保存。
?這樣一個新的工程就建好了。
二、項目函數介紹
1. 中斷函數
? ? ? ? 無論什么單片機都具備中斷功能,這款單片機也不例外,接下來就帶大家接觸它的中斷服務函數。
? ? ? ? 這里我就來解釋以下這個函數說明一下它的功能及用途:
? (1)attachInterrupt(pin, ISR, mode)函數
| 響應中斷的處理程序——中斷函數,當中斷觸發后,ESP8266便會運行這個函數。 |
| 對中斷引腳進行初始化配置,以開啟ESP8266的外部中斷功能 |
| pin | 指定引腳編號的配置 |
| value | 中斷函數名 |
| mode | 中斷模式。有以下兩種常用模式:LOW:低電平觸發;HIGH:高電平觸發; |
? (2)detachInterrupt(pin)函數
| 如果你不需要使用外部中斷了,你可以用中斷分離函數detachInterrupt() 來關閉中斷功能。 |
| 需要禁用中斷的引腳。 |
2. 高級輸入輸出函數? ?? ? ?
(1)tone()函數
| 主要用于ESP8266連接蜂鳴器或揚聲器發聲。 |
| 可以讓指定引腳產生一個占空比為50%的指定頻率的方波。 |
| pin | 需要輸出方波的引腳 |
| frequency | 輸出的頻率,unsigned int型 |
| duration | 方波持續的時間,單位毫秒。如果沒有該參數,ESP8266將持續發出設定的音調,直到你改變發聲頻率。 |
(2)noTone(pin)函數
| 停止指定引腳上的方波輸出。 |
| 需要停止方波輸出的引腳 |
(3)pulseIn()函數
? ? ? ?檢測指定引腳上的脈沖信號寬度。
說明:例如當要檢測高電平脈沖時,pulseIn() 會等待指定引腳輸入的電平變高,當變高后開始記時,直到輸入電平變低,停止計時。pulseln() 函數會返回這個脈沖信號持續的時間,即這個脈沖的寬度。函數還可以設定超時時間。如果超過設定時間,仍未檢測到脈沖,則會退出pulseIn()函數并返回0。當沒有設定超時時間時,pulseIn() 會默認1秒鐘的超時時間。
pulseIn(pin, value) //或 pulseIn(pin, value, timeout)| pin | 需要讀取脈沖的引腳 |
| value | 需要讀取的脈沖類型,HIGH或LOW |
| timeout | 超時時間,單位微秒,數據類型為無符號長整型 |
| 返回脈沖寬度,單位微秒,數據類型為無符號長整型。如果在指定時間內沒有檢測到脈沖,則返回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(); }?四、編譯、燒錄、運行
? ? ? ? 在我前一篇博文就介紹了如何編譯、燒錄,這里就不再過多贅述了,還望諒解!
應視頻的插入不便,這里就用圖片代替,抱歉;其功能可以一目了然,當按鍵按下觸發中斷LED燈就被點亮了。
結束語
? ? ? ? 關于此次基于Arduino IDE開發的ESP8266(ESP-12F)項目4?——中斷及高級輸入輸出項目的介紹就講到這里了,此次教程的重點在于中斷的使用,關于高級輸入輸出函數我給出鏈接供大家學習。調聲函數 (arduino.cn);pulseIn() (arduino.cn)。如果什么問題請再評論區留言。
? ? ? ? 接下來會陸陸續續發布一些其他的教程,敬請期待!感謝大家的支持!如有覺得這篇文章對你有所幫助的,還請點贊、收藏吧!
總結
以上是生活随笔為你收集整理的基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有效发布促成高效软文营销 | 媒介启航
- 下一篇: python怎么使用库里的pi_pyth