<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙OpenHarmony【LED外設控制】 (基于Hi3861開發板)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-23 21:57 ? 次閱讀

概述

OpenHarmony WLAN模組基于Hi3861平臺提供了豐富的外設操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介紹如何通過調用OpenHarmony的NDK接口,實現對GPIO控制,達到LED閃爍的效果。其他的IOT外設控制,開發者可根據API指導文檔完成,此處不逐一介紹。

開發

  1. 請先完成[輕量系統快速入門]
    LED控制參考示例存放于applications/sample/wifi-iot/app/iothardware/led_example.c文件中。
  2. 實現IOT外設控制,首先需要通過查閱原理圖明確接線關系。經過查閱,hispark pegasus的LED與芯片的9號管腳相連。

鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

搜狗高速瀏覽器截圖20240326151547.png

#define LED_TEST_GPIO 9

說明: 開發板原理圖,請開發者聯系Hi3861購買渠道客服獲取。

  1. 使用GPIO前,需要完成GPIO管腳初始化,明確管腳用途,并創建任務,使LED周期性亮滅,達到閃爍的效果。
    static void LedExampleEntry(void)
    {
        osThreadAttr_t attr;
    
        /* 管腳初始化 */
        IoTGpioInit(LED_TEST_GPIO);
        /* 配置9號管腳為輸出方向 */
        IoTGpioSetDir(LED_TEST_GPIO, IOT_GPIO_DIR_OUT);
    
        attr.name = "LedTask";
        attr.attr_bits = 0U;
        attr.cb_mem = NULL;
        attr.cb_size = 0U;
        attr.stack_mem = NULL;
        attr.stack_size = LED_TASK_STACK_SIZE;
        attr.priority = LED_TASK_PRIO;
    
        /* 啟動任務 */
        if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
            printf("[LedExample] Failed to create LedTask!n");
        }
    }
    
  2. 在循環任務中通過周期性亮滅形式實現LED閃爍。
    static void *LedTask(const char *arg)
    {
        (void)arg;
        while (1) {
            switch (g_ledState) {
                case LED_ON:
                    IoTGpioSetOutputVal(LED_TEST_GPIO, 1);
                    usleep(LED_INTERVAL_TIME_US);
                    break;
                case LED_OFF:
                    IoTGpioSetOutputVal(LED_TEST_GPIO, 0);
                    usleep(LED_INTERVAL_TIME_US);
                    break;
                case LED_SPARK:
                    IoTGpioSetOutputVal(LED_TEST_GPIO, 0);
                    usleep(LED_INTERVAL_TIME_US);
                    IoTGpioSetOutputVal(LED_TEST_GPIO, 1);
                    usleep(LED_INTERVAL_TIME_US);
                    break;
                default:
                    usleep(LED_INTERVAL_TIME_US);
                    break;
            }
        }
    }
    
  3. 在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動業務。(SYS_RUN定義在ohos_init.h文件中)
    SYS_RUN(LedExampleEntry);
    
  4. 修改applications/sample/wifi-iot/app/BUILD.gn文件,使led_example.c參與編譯。
    import("http://build/lite/config/component/lite_component.gni")
    lite_component("app") {
        features = [
            "iothardware:led_example"
        ]
    }
    

驗證

編譯過程請參考[輕量系統快速入門的編譯章節],燒錄過程請參考[輕量系統快速入門的燒錄章節](。

完成以上兩步后,按下RST鍵復位模組,可發現LED在周期性閃爍,與預期相符,驗證完畢。

圖 1 LED閃爍圖

LED%E9%97%AA%E7%83%81%E5%9B%BE.gif

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    237

    文章

    22449

    瀏覽量

    645872
  • 開發板
    +關注

    關注

    25

    文章

    4429

    瀏覽量

    93991
  • 鴻蒙
    +關注

    關注

    55

    文章

    1629

    瀏覽量

    42119
  • OpenHarmony
    +關注

    關注

    23

    文章

    3284

    瀏覽量

    15159
收藏 人收藏

    評論

    相關推薦

    鴻蒙OpenHarmony【輕量系統運行】 (基于Hi3861開發板

    由于Hi3861為WLAN模組,您可以在版本編譯及燒錄后,通過如下操作,使開發板實現聯網功能。
    的頭像 發表于 04-22 21:24 ?318次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【輕量系統運行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>)

    鴻蒙OpenHarmony【輕量系統 環境搭建】 (基于Hi3861開發板

    除上述[安裝庫和工具集]和[安裝編譯工具]外,針對Hi3861開發板還需要安裝特定的編譯工具。
    的頭像 發表于 04-26 17:47 ?333次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【輕量系統 環境搭建】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>)

    盤點那些硬件+項目學習套件:Hi3861鴻蒙開發板及入門常見問題解答

    ,一個是鴻蒙應用開發,一個是鴻蒙設備開發。我們的Hi3861鴻蒙
    發表于 02-01 16:55

    Hi3861開發板介紹

    介紹Hi3861 WLAN模組的開發環境搭建、版本編譯構建、燒錄、源碼修改、調試驗證等方法。通過學習,開發者會對Hi3861 WLAN模組開發
    發表于 09-21 15:15

    鴻蒙開發板Hi3861燒錄報錯?

    各位高手:鴻蒙開發板燒錄時出現如下錯誤,請問怎么解決?> Executing task: c:\users\xiexg\.deveco-device-tool\core\deveco-venv
    發表于 05-18 15:18

    請問鴻蒙開發板hi3861有中斷引腳嗎?

    請問鴻蒙開發板hi3861有中斷引腳嗎?
    發表于 09-21 21:16

    鴻蒙開發板hi3861硬件spi應用示范代碼

    鴻蒙開發板hi3861硬件spi應用示范代碼
    發表于 11-13 22:10

    基于Hi3861開發板鴻蒙開發分享

    前言經過一段時間的分享,基于Hi3861開發板鴻蒙開發已經完成了下面核心和OLED兩個子
    發表于 03-01 06:07

    如何使用 HiBurn 工具燒錄鴻蒙的 .bin 文件到 Hi3861 開發板

    鴻蒙官方文檔的Hi3861開發板第一個示例程序中描述了如何使用 DevEco Device Tool 工具燒錄二進制文件到 Hi3861 開發板
    的頭像 發表于 10-25 09:23 ?4290次閱讀

    基于鴻蒙系統+Hi3861的WiFi小車開發

    本文簡單介紹鴻蒙系統 + Hi3861 的WiFi小車開發,適用于開發潤和Hi3861開發板的小
    的頭像 發表于 03-03 09:31 ?4753次閱讀
    基于<b class='flag-5'>鴻蒙</b>系統+<b class='flag-5'>Hi3861</b>的WiFi小車<b class='flag-5'>開發</b>

    自制Hi3861開發板(附原理圖和電路圖)

    OpenHarmony的發展已經進入了新的階段,逐步把重點向富設備開發方向。OpenHarmony 3.x的各大特性也是針對富設備來的,但是仍然支持輕量設備,如Hi3861芯片設備。于
    的頭像 發表于 04-14 10:23 ?7949次閱讀
    自制<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>(附原理圖和電路圖)

    Hi3861編譯燒錄更快捷

    更快捷 Hi3861作為OpenHarmony社區Top級開發板,相信很多鴻蒙智聯設備開發者都在Linux上編譯燒錄過
    的頭像 發表于 02-11 13:25 ?637次閱讀

    潤開鴻Hi3861開發板介紹

    Hi3861開發板是一片大約2cm*5cm大小的開發板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路。支持
    的頭像 發表于 04-27 10:59 ?2668次閱讀
    潤開鴻<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>介紹

    中文編程鴻蒙Hi3861開發基礎案例之-02LED控制

    中文編程鴻蒙Hi3861開發控制LED
    的頭像 發表于 05-11 09:54 ?2141次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-02<b class='flag-5'>LED</b>燈<b class='flag-5'>控制</b>

    中文編程鴻蒙Hi3861開發基礎案例之-05按鍵檢測

    中文編程鴻蒙Hi3861開發對按鍵進行輸入檢測
    的頭像 發表于 05-11 12:04 ?2541次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-05按鍵檢測
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>