本文來源電子發燒友社區,作者:abcd7471, 帖子地址:https://bbs.elecfans.com/jishu_2033483_1_1.html
以前只是簡單的玩過51單片機,現在直接玩鴻蒙開發,處處碰壁、踩坑無數!根據官網教程搭好環境之后,官網的示例程序編譯成功并且在開發板上運行了,然后就差點沒有下文了,因為不知道接下來要怎么玩,如何玩?然后大量查閱資料,查閱C語言教程,補充C語言知識。現在來寫個入門程序:用一個按鍵控制LED燈的亮滅來跟大家分享一下,希望對像我這樣的小白有幫助,由于水平有限,難免有錯誤或不知足之處,希望各位大佬們指正。
以前玩51單片機的朋友們都知道要用一個按鍵來控制LED燈的亮滅如何實現,比如說stc15系列的51單片機,LED一端接在P09的IO腳上,另一端經過一個電阻接到VCC,按鍵一端接到P05的IO腳,另一端接GND,用查詢方式檢測按鍵狀態,功能實現如下:
復制代碼
由于STC15系列的51單片機和傳統的51單片機的IO上電后默認處于弱上拉狀態,因此僅僅需要上面幾行代碼就可以實現了。現在玩的是海思Hi3861芯片和鴻蒙OS這兩樣東西(暫且稱為東西),這兩樣東西要實現像上面STC15單片機的這個功能,要如何實現呢?這個問題也是我學習鴻蒙開發入門的一個思路。
通過查開發板的原理圖可以知道,LED1一端接到Hi3861芯片名為GPIO09的pin腳,另一端經過一個330歐電阻之后接到3.3V,按鍵S1一端接到芯片名為GPIO05的pin腳,另一端接到GND。要實現上面那個功能需要走的流程大概如下:
1、GPIO初始化
2、設置GPIO的復用功能,比如說某些GPIO腳有I2C、UART、ADC等功能,要設置成GPIO功能
3、設置GPIO的方向是輸入或輸出
4、設置GPIO管腳上下拉狀態
主要實現代碼如下:
復制代碼
然后弄個while(1)循環,不斷查詢GPIO狀態,
復制代碼
具體完整代碼已上傳到附件中。有需要的朋友們可以下載附件解壓后將文件夾復制到指定位置,如圖所示

兩個重要的BUILD.gn文件,如圖所示:


程序運行效果如視頻所示:
項目源代碼及下載地址,見作者原帖子內容
以前只是簡單的玩過51單片機,現在直接玩鴻蒙開發,處處碰壁、踩坑無數!根據官網教程搭好環境之后,官網的示例程序編譯成功并且在開發板上運行了,然后就差點沒有下文了,因為不知道接下來要怎么玩,如何玩?然后大量查閱資料,查閱C語言教程,補充C語言知識。現在來寫個入門程序:用一個按鍵控制LED燈的亮滅來跟大家分享一下,希望對像我這樣的小白有幫助,由于水平有限,難免有錯誤或不知足之處,希望各位大佬們指正。
以前玩51單片機的朋友們都知道要用一個按鍵來控制LED燈的亮滅如何實現,比如說stc15系列的51單片機,LED一端接在P09的IO腳上,另一端經過一個電阻接到VCC,按鍵一端接到P05的IO腳,另一端接GND,用查詢方式檢測按鍵狀態,功能實現如下:
- #include
- int main
- {
- while(1)
- {
- if(!P05) P09 = 0;
- else P09 = 1;
- }
- }
由于STC15系列的51單片機和傳統的51單片機的IO上電后默認處于弱上拉狀態,因此僅僅需要上面幾行代碼就可以實現了。現在玩的是海思Hi3861芯片和鴻蒙OS這兩樣東西(暫且稱為東西),這兩樣東西要實現像上面STC15單片機的這個功能,要如何實現呢?這個問題也是我學習鴻蒙開發入門的一個思路。
通過查開發板的原理圖可以知道,LED1一端接到Hi3861芯片名為GPIO09的pin腳,另一端經過一個330歐電阻之后接到3.3V,按鍵S1一端接到芯片名為GPIO05的pin腳,另一端接到GND。要實現上面那個功能需要走的流程大概如下:
1、GPIO初始化
2、設置GPIO的復用功能,比如說某些GPIO腳有I2C、UART、ADC等功能,要設置成GPIO功能
3、設置GPIO的方向是輸入或輸出
4、設置GPIO管腳上下拉狀態
主要實現代碼如下:
- GpioInit();
- IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
- IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
- GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
- GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
- IoSetPull(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_PULL_UP);
- while (1)
- {
- GpioGetinputVal(WIFI_IOT_GPIO_IDX_5, &S2_status);
- if(!S2_status)
- {
- GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
- }
- else GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
- }

兩個重要的BUILD.gn文件,如圖所示:


程序運行效果如視頻所示:
項目源代碼及下載地址,見作者原帖子內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
wi-fi
+關注
關注
15文章
2424瀏覽量
129567 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36058 -
HiSpark
+關注
關注
1文章
156瀏覽量
7757
發布評論請先 登錄
相關推薦
熱點推薦
技術資訊 I Wi-Fi 模塊設計
。Wi-Fi模塊可實現無縫連接和數據交換,對設備進行遠程控制和監測。Wi-Fi模塊設計旨在打造一套緊湊且高效的軟硬件解決方案,使設備能夠通過Wi-Fi網絡通信。這類模塊常用
【瑞薩FPB-RA6E2試用】GPIO-按鍵控制LED燈亮滅及設備樹理解
GPIO-按鍵控制LED燈亮滅及設備樹理解
0、視頻教程
https://www.bilibili.com/video/BV1tximBqE
發表于 01-13 14:44
ESP32 Wi-Fi 控制 LED 燈的原理
LED燈的——從底層硬件連接,到網絡通信邏輯,一步步拆解整個過程。一、系統概覽ESP32是一顆集成度極高的芯片,內置Wi-Fi、藍牙、雙核MCU和豐富的外設接
Wi-Fi:無線連接的全球通用語
現代生活中不可或缺的無線連接方式。二、Wi-Fi的核心特點1. 高速率,寬帶寬支持從幾十Mbps到數Gbps的傳輸速率,滿足高清視頻、在線游戲等高帶寬應用需求。2. 廣泛兼容,生態成熟幾乎所有智能終端均內置
發表于 01-07 09:49
Wi-Fi模塊選型指南 | 低功耗藍牙/Wi-Fi 6模塊推薦 | 物聯網設備集成攻略
物聯網的快速發展,Wi-Fi技術的成熟的情況下,越來越多的場景需要用到Wi-Fi來無線傳輸數據,尤其是移動設備中,怎么再設備中選擇合適的Wi-Fi模塊呢?下面我們來介紹下Wi-Fi模塊
淺談Wi-Fi 6E與Wi-Fi 7的關鍵器件——BAW濾波器新技術
作者: Qorvo 亞太區無線連接事業部高級行銷經理林健富 ? 2020年1月,Wi-Fi聯盟正式宣布開放6GHz頻段(5925MHz-7125MHz),并將其命名為Wi-Fi 6E。2020年4月
發表于 09-19 18:29
?2137次閱讀
解讀Nordic基于SSID的Wi-Fi定位解決方案
,與 nRF91 系列蜂窩物聯網模組配合使用,可實現基于 SSID 的 Wi-Fi 定位。Nordic基于SSID的Wi-Fi定位可以在室內和室外、城市和郊區以極其省電的方式獲取精確的位置信息。這是對全球導航衛星系統(GNSS)
如何在 NuMaker-IoT-M467 板上使用 Arduino IDE 控制 Wi-Fi 模塊?
在NuMaker開發板上,有一個ESP-12F Wi-Fi模塊;但是,Arduino IDE 中的 NuMaker UNO 包不提供該模塊的相關控制。如果您希望在 Arduino IDE 中控制此模塊,您應該如何進行?
發表于 09-04 08:28
基于 SSID 的 Wi-Fi 定位:與其他定位服務的性能比較
,與 nRF91 系列蜂窩物聯網模組配合使用,可實現基于 SSID 的 Wi-Fi 定位。Nordic基于SSID的Wi-Fi定位可以在室內和室外、城市和郊區以極其省電的方式獲取精確的位置信息。這是對全球
發表于 08-31 21:01
LitePoint Wi-Fi測試軟件減輕客戶設計負擔
自Wi-Fi 7于一年多前獲得Wi-Fi聯盟認證以來,作為最新一代通信技術,Wi-Fi正逐步成為用戶實現無所不在無線連接的新選擇。隨著每一代Wi-Fi信號復雜性的提升,建議將硬件測試納
Wi-Fi 8:開啟極高可靠性 (UHR) 連接的新紀元——1
英國作家狄更斯在《雙城記》的開頭寫道:“這是最好的時代,也是最壞的時代。”
這句話若套用在現今Wi-Fi 的市場現狀,何嘗不是驚人的相似?
怎么說呢?Wi-Fi 從被發明至今已經經過了20多年的迭代
發表于 06-13 11:09
基于 Wi-Fi 的定位服務
以下捕獲使用 location_wifi_get 函數請求 Wi-Fi 定位服務。該事件的總功耗為 125.85mC,日志顯示精確度為 30.0m。
Got location:
method
發表于 04-17 15:16
nRF Cloud Wi-Fi 定位服務
、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通過利用 nRF Cloud 的優化定位算法,基于 Nordic SoC 和 模組的產品可在定位用例
發表于 04-17 15:07
Wi-Fi 定位服務
定位服務提供商維護。
通過查找數據庫中的匹配模式并計算信號強度來估計位置的算法。
當設備查詢定位服務時,它會提供它能看到的所有 Wi-Fi 網絡的數據。該服務會在其數據庫中查找這些網絡,找到相關位置,并根據相似性和信號強度估算設備的位置。
————————————————
發表于 04-17 15:01
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】小白寫個入門程序——按鍵控制LED燈的亮滅(查詢方式)
評論