99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

程序小白
認證:優質創作者
所在專題目錄 查看專題
初識Arduino:簡單是簡單了點,還是蠻有意思的
基于ESP32快速搭建藍牙串口透傳應用(Arduino)
基于ESP32搭建的藍牙串口透傳應用代碼分析(Arduino)
基于ESP32搭建GPIO-Interrupt應用及分析(Arduino)
基于ESP32例程分析Functional-Interrupt(C++淺析)及GPIO-API詳解
基于ESP32——FreeRTOS初識(Arduino)
作者動態 更多
基于stm32采用PWM驅動伺服控制器學習筆記
05-13 15:25
基于STM32驅動TM1638學習筆記——軟件篇
04-19 12:42
基于TM1638驅動8位數碼管設計分享
02-24 11:26
RT-Thread驅動之路: Studio創建FAL分區⑤
01-02 08:30
RT-Thread驅動之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

基于ESP32搭建GPIO-Interrupt應用及分析(Arduino)

      這一篇開始我們通過一個簡單的應用來講解如何在Arduino開發環境下,快速搭建一個GPIO中斷的應用。

      我用的是ESP32-S的開發板,這個開發板上有兩個按鍵提供,一個是復位按鍵,另一個按鍵可以進行配置使用。

      首先我們還是看一下ESP32-S開發板的原理圖 有關按鍵的部分;

==== 接下來進入我們的擼碼模式 ====

代碼擼完在Arduino中是這個樣子的:

但是他是一個INO類型的文件,并不利于我們的代碼分析:

這里有一個小技巧,把這個INO文件復制一份,并且把后綴改為.C的文件,然后把這個文件放到我們的Arduino安裝目錄中ESP32的文件夾下面,然后在這個目錄下,我們利用source Insight的代碼分析功能來分析我們的軟件。

在sourceInsight工具下,我們代碼將可以很容易的進行分析,跳轉和查找,代碼總覽如下:

==== 源碼分析 ====

1.聲明并創建一個button結構:

2.創建中斷服務函數,并在中斷函數中進行計數處理:

在定義這個isr函數時候 用到了一個前綴,這個前綴的意思是,這個函數并不是存儲在flash中,而是被放到了IRAM里(先不要太深入到細節為什么要這么做,這和ESP32的構架有關,先照做就是):

3.在setup階段配置串口、GPIO引腳、以及中斷入口:

4.在loop循環中,實時查詢Button按鍵狀態,引入系統運行時間計數函數,并設置在20s后解除GPIO的中斷功能:

====================實戰應用==============================

1.將我們的ESP32開發板接入電腦,并確認好串口號:

2.在Arduino軟件中將串口號變更為我們接入開發板的串口號,確認串口無占用:

3.點擊編譯上傳按鈕等待軟件編譯完成,并燒錄到我們的ESP32開發板中實際運行:

4.在軟件運行以后,開發板的燒錄串口會自動解除占用,并通過該串口輸出系統運行信息以及應用內部打印信息,這時候我們需要配置一下串口調試工具,并打開串口:

5.點擊開發板的復位按鍵,復位已燒錄的程序:

6.點擊我們開發板的button1按鍵,觀察串口輸出打印信息:

7.等待系統運行20s后,觀察串口打印信息,并嘗試按下button1,觀察串口是否有信息輸出:

====================串口特別介紹篇==========================

ESP32的串口資源中有3個串口:分別為Serial 、Serial1、Serial2。

Serial串口的主要功能:

      1. 首先它是我們的軟件下載更新需要使用的串口。

      2. 他是系統運行信息打印串口,以及我們APP內置運行打印信息輸出串口。

      3. 他的串口發送/接收引腳是固定的,是IO1和IO3。

Serial串口的實際工作流程:

      1.ESP32開發板上電以后,會進入APP運行模式。

      2.ESP32內置操作系統會在運行階段,不斷檢測Serial串口的狀態。

      3.當檢測到串口是未連接狀態,并且這個時候有燒錄請求命令時(點擊Arduino軟件的燒錄上傳按鈕),這時Serial串口會轉換到程序下載模式,并且串口被占用進行軟件燒錄操作。

      4.在軟件燒錄完成以后,系統自動重啟運行,又進入到了APP運行模式,并且輸出串口打印信息,并進入到第2步串口監測捕捉命令模式。

==== 總結篇 ====

總結:基于Arduino的開發方式和傳統的單片機開發方式不太一樣。

      例如以前我們總是可以利用仿真環境IDE以及配合仿真器,進行全仿真運行,斷點運行,watch查看變量等等方式去調試我們的軟件。在基于Arduino方式開發的嵌入式軟件,我們無法進行全仿真 斷點運行等調試手段,我們只能內嵌代碼到我們的軟件中,通過串口輸出打印的方式,來判斷我們的系統的運行裝,這一點要慢慢的適應,其實并不是只有Arduino這個樣子,假如你接觸過嵌入式Linux的開發,那么你會知道,其實除了我們用的傳統的單片機開發,其它嵌入式開發領域都是依靠出口輸出  debug信息的方式來完成軟件調試的。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 3
收藏 4
關注 151
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 亚洲av无码成h人动漫网站系 | 日本第一页 | 亚洲日韩亚洲另类激情文学 | 免费无码中文字幕A级毛片 中文字幕一区二区在线视频 | 老司机伊人网 | 奶头和荫蒂添的好舒服囗交 | 欧美黑人添添高潮a片www | JIZZJIZZ少妇亚洲水多 | 91在线观看视频 | 网红主播大秀福利视频日韩精品 | 把女人弄爽特黄a大片777 | 久久激情网站 | 久久狠狠色噜噜狠狠狠狠97 | 日韩精品在线一区二区 | 国产精品18久久久久久vr | 99久久国语露脸国产精品 | 九九九国产视频 | 国产熟妇乱子伦视频在线观看 | 在线看高清中文字幕一区 | 久久久久国产一级毛片 | 天天摸日日添狠狠添婷婷 | 97se亚洲国产一区二区三区 | 无码人妻精品中文字幕 | 99极品在线| 亚洲精品乱码久久久久久高潮 | 乱亲女h秽乱长久久久 | 最近的2019中文字幕免费 | 久草在线观看首页 | 穿透明白衬衫喷奶水的av | 激情亚洲AV无码日韩色 | 精品亚洲国产成人A片在线鸭王 | 亚洲国产精品久久久久久69 | 免费无遮挡色视频网站 | 性欧美视频一区二区三区 | 人善交VIDEOS欧美3D | 精品国产免费久久久久久尖叫 | 国产精品美女WWW爽爽爽视频 | 大地资源第二页中文高清版 | 国产猛男猛女无遮无掩 | 日韩黄色大片在线观看 | 国产精品无 |