學習開發最有效的方式就是動手實踐!本文以實戰為核心,通過開源示例代碼帶你快速上手配置GPIO輸出、處理輸入信號、利用中斷優化系統響應,讓學習成果立竿見影!
GPIO(General-Purpose Input/Output) 是通用輸入輸出接口的簡稱,其最大特性就是使用極為靈活,可以通過編程實現豐富應用。無論是點亮一個LED、讀取一個按鍵,還是驅動更復雜的傳感器和模塊,都離不開GPIO的操作。
LuatOS開發提供的簡潔API使得GPIO編程變得簡單高效,降低了嵌入式開發的門檻,新手開發者也能快速上手。
本文將以Air780EPM V1.3開發板為例,分享LuatOS開發的GPIO輸出/輸入/中斷應用示例要點。熟練掌握這三種GPIO工作模式,開發者能夠實現大多數基礎的硬件交互需求,為更復雜的物聯網應用打下堅實基礎。

最新源碼及實操教程詳見:https://docs.openluat.com/air780epm/luatos/app/driver/gpio
一、GPIO輸出模式
GPIO的輸出模式是指將GPIO配置為向外界輸出高低電平的模式,常用于驅動LED、繼電器、蜂鳴器等設備。
1.1 輸出模式測試示例
Air780EPM開發板上的網絡指示燈(藍燈)與GPIO27相連,將引腳初始化為輸出,并周期性改變其電平,從而實現每隔1秒亮0.5秒的呼吸燈閃爍效果。

1.2 示例效果


二、GPIO輸入模式
GPIO的輸入模式是指將GPIO配置為接收外部信號的模式,常用于檢測按鍵、開關等信號。
2.1 輸入模式測試示例
配置GPIO24為輸入模式,GPIO27(開發板藍燈)為輸出模式:
GPIO24檢測到有高低電平輸入后,會返回GPIO24當前獲取到的電平為高還是低,高返回值為1,低返回值為0;
將這個返回值,傳給GPIO27(LED),為0則GPIO27輸出低電平(LED燈滅),為1則輸出高電平(LED燈亮)。


2.2 示例效果
準備一根杜邦線,將Air780EPM開發板上的GPIO24引腳在 GND/3.3V引腳中間切換,即可看到LED燈亮滅變化。

三、GPIO中斷模式
中斷模式提供了高效的事件響應機制,特別適合需要實時處理的應用,如:緊急按鍵響應、外部事件觸發、低功耗狀態下的喚醒等。
當GPIO檢測到電平變化且滿足觸發條件時,觸發中斷,CPU 就會暫停當前任務,執行中斷回調函數中的內容,當中斷回調函數中的內容執行完畢時,再繼續執行之前沒有執行完的任務;除了中斷回調方式,還有中斷計數模式(中斷時不回調)。
3.1 中斷模式(觸發)測試示例
配置GPIO24為中斷模式,上升沿(gpio.RISING)和下降沿(gpio.FALLING)均觸發(gpio.BOTH)。


3.2 中斷模式(觸發)示例效果
將Air780EPM開發板上的GPIO24引腳在插拔VDD-EXT之間來回切換,即可在日志中看到打印。當GPIO24接觸高/低電平時,均會觸發中斷:

3.3 中斷模式(計數)測試示例
配置gpio24為中斷計數模式,配置PWM4輸出1kHZ占空比50%的方波作為信號源,每隔1秒統計一次中斷觸發的次數。

3.4 中斷模式(計數)示例效果
硬件上將PWM4(開發板的網絡指示燈與GPIO27相連,GPIO27同時也是PWM4通道)與GPIO24連接起來,通過PWM4輸出中斷(高低電平變化的方波),再通過GPIO24統計輸出的中斷數。

今天的內容就分享到這里了~
審核編輯 黃宇
-
GPIO
+關注
關注
16文章
1328瀏覽量
56215 -
開源代碼
+關注
關注
0文章
41瀏覽量
3952
發布評論請先 登錄
深入解析RK平臺GPIO驅動:從原理到調試,開發者必看指南
【書籍評測活動NO.67】成為硬核Linux開發者:《Linux 設備驅動開發(第 2 版)》
分享一個驅動開發工程師學習路線圖
【迅為RK3568開發板NPU實戰】別再閑置你的NPU!手把手教你玩轉RKNN-Toolkit2 的使用
實戰低功耗應用:實網功耗測試數據公開,附開源代碼指南!
AS32X601驅動系列教程 GPIO_點亮LED詳解
NCA9555 具有16位通用并行I2C總線數輸入輸出GPIO擴展功能
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO中斷
基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO外設
實戰驅動學習:用開源代碼玩轉GPIO輸出/輸入/中斷開發!
評論