0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

概述

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

開發(fā)

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

鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

#define LED_TEST_GPIO 9

說明: 開發(fā)板原理圖,請開發(fā)者聯(lián)系Hi3861購買渠道客服獲取。

  1. 使用GPIO前,需要完成GPIO管腳初始化,明確管腳用途,并創(chuàng)建任務(wù),使LED周期性亮滅,達(dá)到閃爍的效果。
    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;
    
        /* 啟動任務(wù) */
        if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
            printf("[LedExample] Failed to create LedTask!n");
        }
    }
    
  2. 在循環(huán)任務(wù)中通過周期性亮滅形式實現(xiàn)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啟動恢復(fù)模塊接口SYS_RUN()啟動業(yè)務(wù)。(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"
        ]
    }
    

驗證

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

完成以上兩步后,按下RST鍵復(fù)位模組,可發(fā)現(xiàn)LED在周期性閃爍,與預(yù)期相符,驗證完畢。

圖 1 LED閃爍圖

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23277

    瀏覽量

    660893
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97482
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2352

    瀏覽量

    42859
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3722

    瀏覽量

    16320
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙OpenHarmony【輕量系統(tǒng)運行】 (基于Hi3861開發(fā)板

    由于Hi3861為WLAN模組,您可以在版本編譯及燒錄后,通過如下操作,使開發(fā)板實現(xiàn)聯(lián)網(wǎng)功能。
    的頭像 發(fā)表于 04-23 09:50 ?776次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【輕量系統(tǒng)運行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發(fā)板

    OpenHarmony致力于打造一套更加開放完善的IoT生態(tài)系統(tǒng),為此OpenHarmony規(guī)劃了一組目錄,用于將各廠商的SDK集成到OpenHarmony中。本文檔基于Hi3861
    的頭像 發(fā)表于 04-24 15:11 ?1117次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony【輕量系統(tǒng) 環(huán)境搭建】 (基于Hi3861開發(fā)板

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

    鴻蒙OpenHarmony【輕量系統(tǒng) 燒錄】 (基于Hi3861開發(fā)板

    針對Hi3861開發(fā)板,除了DevEco Device Tool
    的頭像 發(fā)表于 05-10 16:59 ?1136次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【輕量系統(tǒng) 燒錄】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    鴻蒙OpenHarmony【輕量系統(tǒng) 運行】 (基于Hi3861開發(fā)板

    由于Hi3861為WLAN模組,您可以在版本編譯及燒錄后,通過如下操作,使開發(fā)板實現(xiàn)聯(lián)網(wǎng)功能。
    的頭像 發(fā)表于 05-10 16:38 ?704次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【輕量系統(tǒng) 運行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>)

    盤點那些硬件+項目學(xué)習(xí)套件:Hi3861鴻蒙開發(fā)板及入門常見問題解答

    ,一個是鴻蒙應(yīng)用開發(fā),一個是鴻蒙設(shè)備開發(fā)。我們的Hi3861鴻蒙
    發(fā)表于 02-01 16:55

    Hi3861開發(fā)板介紹

    介紹Hi3861 WLAN模組的開發(fā)環(huán)境搭建、版本編譯構(gòu)建、燒錄、源碼修改、調(diào)試驗證等方法。通過學(xué)習(xí),開發(fā)者會對Hi3861 WLAN模組開發(fā)
    發(fā)表于 09-21 15:15

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

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

    基于鴻蒙系統(tǒng)+Hi3861的WiFi小車開發(fā)

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

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

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

    Hi3861編譯燒錄更快捷

    更快捷 Hi3861作為OpenHarmony社區(qū)Top級開發(fā)板,相信很多鴻蒙智聯(lián)設(shè)備開發(fā)者都在Linux上編譯燒錄過
    的頭像 發(fā)表于 02-11 13:25 ?940次閱讀

    潤開鴻Hi3861開發(fā)板介紹

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

    中文編程鴻蒙Hi3861開發(fā)基礎(chǔ)案例之-01創(chuàng)建新工程

    中文編程鴻蒙Hi3861開發(fā)創(chuàng)建新工程
    的頭像 發(fā)表于 05-11 09:53 ?2775次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)</b>基礎(chǔ)案例之-01創(chuàng)建新工程

    中文編程鴻蒙Hi3861開發(fā)基礎(chǔ)案例之-02LED控制

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

    鴻蒙OpenHarmony南向:【Hi3861開發(fā)板介紹】

    Hi3861開發(fā)板是一片大約2cm*5cm大小的開發(fā)板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路。支持,并配套提供開放、易用的
    的頭像 發(fā)表于 05-06 17:19 ?1128次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3861</b><b class='flag-5'>開發(fā)板</b>介紹】