本文來源電子發燒友社區,作者: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
+關注
關注
14文章
2147瀏覽量
124612 -
HarmonyOS
+關注
關注
79文章
1979瀏覽量
30274 -
HiSpark
+關注
關注
1文章
156瀏覽量
6938
發布評論請先 登錄
相關推薦
Wi-Fi 8要來了!未來Wi-Fi技術演進方向揭秘
產品銷售中,雖然Wi-Fi 7產品的銷量份額快速從年初的個位數百分比增長至14%,但Wi-Fi 6產品的銷量份額依然穩定在60%左右。如果從存量設備來看,那么Wi-Fi 7路由器的占比將遠遠小于這個數。 ? 智能手機等終端設備已
華為海思正式進入Wi-Fi FEM賽道?
大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機Wi-Fi FEM,再到IoT FEM全覆
發表于 12-11 17:42
從Wi-Fi 4到Wi-Fi 7:網速飆升40倍的無線革命
1 Wi-Fi技術的快速發展 每一代新的Wi-Fi協議發布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網絡技術顯著提升,實現了網速的巨大飛躍。 ? ?
Wi-Fi 7與Wi-Fi 6E有什么區別
也許很多人還在考慮是否要將使用的Wi-Fi設備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經開始“登堂入室”了。Wi-Fi 7是新一代
IR900 Wi-Fi聯網的配置過程
, 通過SSID掃描可以查看;輸入密碼,點擊保存;
在SSID掃描頁面中查看是否連接成功, 如果沒有請檢查認證方式、加密方式、密碼是否輸入正確;
Wi-Fi掃描顯示“已連接”,進入“快速向導-新建WAN
發表于 07-25 06:09
驗證物聯網Wi-Fi HaLow用例的MM6108-EKH08開發套件來啦
驗證物聯網Wi-Fi HaLow用例的MM6108-EKH08開發套件來啦 MM6108-EKH08開發套件專為驗證物聯網Wi-Fi HaLow用例而設計。該
Wi-Fi的誕生與發展
短距離無線通信技術有Wi-Fi、ZigBee、藍牙以及Z-Wave,今天我們先揭開Wi-Fi的神秘面紗。Chrent短距離無線通信技術——Wi-Fi過去的20多年,Wi-Fi靠著僅有的
Wi-Fi HaLow和傳統Wi-Fi的區別
Wi-Fi HaLow和傳統Wi-Fi的區別? Wi-Fi是一種無線網絡技術,可以連接到互聯網或局域網,為用戶提供無線上網的便利。隨著科技的發展和互聯網的普及,Wi-Fi也在不斷演進和
康普攜手Wi-Fi聯盟,RUCKUS Wi-Fi 7系列接入點成Wi-Fi
康普高級副總裁兼網絡、智能蜂窩和安全解決方案總裁Bart Giordano對此表示: “我們非常榮幸能與Wi-Fi Alliance形成長期合作伙伴關系,將我們的RUCKUS Wi-Fi 7 接入點平臺作為Wi-Fi CERT
BT Wi-Fi模式是否可以通過ModustoolBox對套件進行編程來實現?
想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型開發套件。
瀏覽文檔我無法弄清楚如何在不同的 Wi-Fi 和藍牙模式(電源模式、連接模式等)下配置套件。
在
發表于 01-22 06:19
評論