0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OpenHarmony【LED外设控制】 (基于Hi3861开发板)

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-23 21:57 次阅读

概述

OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADCUART、SPISDIO、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("//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
    +关注

    关注

    240

    文章

    23025

    浏览量

    656159
  • 开发板
    +关注

    关注

    25

    文章

    4872

    浏览量

    96971
  • 鸿蒙
    +关注

    关注

    57

    文章

    2301

    浏览量

    42664
  • OpenHarmony
    +关注

    关注

    25

    文章

    3628

    浏览量

    16027
收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【轻量系统运行】 (基于Hi3861开发板

    由于Hi3861为WLAN模组,您可以在版本编译及烧录后,通过如下操作,使开发板实现联网功能。
    的头像 发表于 04-23 09:50 646次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量系统运行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【集成三方SDK】 (基于Hi3861开发板

    OpenHarmony致力于打造一套更加开放完善的IoT生态系统,为此OpenHarmony规划了一组目录,用于将各厂商的SDK集成到OpenHarmony中。本文档基于Hi3861
    的头像 发表于 04-24 15:11 989次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【轻量系统 环境搭建】 (基于Hi3861开发板

    除上述[安装库和工具集]和[安装编译工具]外,针对Hi3861开发板还需要安装特定的编译工具。
    的头像 发表于 04-26 17:47 1711次阅读
    <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开发板,除了DevEco Device Tool
    的头像 发表于 05-10 16:59 1001次阅读
    <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为WLAN模组,您可以在版本编译及烧录后,通过如下操作,使开发板实现联网功能。
    的头像 发表于 05-10 16:38 623次阅读
    <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

    如何使用 HiBurn 工具烧录鸿蒙的 .bin 文件到 Hi3861 开发板

    鸿蒙官方文档的Hi3861开发板第一个示例程序中描述了如何使用 DevEco Device Tool 工具烧录二进制文件到 Hi3861 开发板
    的头像 发表于 10-25 09:23 4591次阅读

    基于鸿蒙系统+Hi3861的WiFi小车开发

    本文简单介绍鸿蒙系统 + Hi3861 的WiFi小车开发,适用于开发润和Hi3861开发板的小
    的头像 发表于 03-03 09:31 5532次阅读
    基于<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 9685次阅读
    自制<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>(附原理图和电路图)

    Hi3861编译烧录更快捷

    更快捷 Hi3861作为OpenHarmony社区Top级开发板,相信很多鸿蒙智联设备开发者都在Linux上编译烧录过
    的头像 发表于 02-11 13:25 875次阅读

    润开鸿Hi3861开发板介绍

    Hi3861开发板是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持
    的头像 发表于 04-27 10:59 3410次阅读
    润开鸿<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>介绍

    中文编程鸿蒙Hi3861开发基础案例之-02LED控制

    中文编程鸿蒙Hi3861开发控制LED
    的头像 发表于 05-11 09:54 2741次阅读
    中文编程<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开发基础案例之-03交通红绿灯

    中文编程鸿蒙Hi3861开发模拟交通红绿灯亮与灭控制
    的头像 发表于 05-11 11:27 1976次阅读
    中文编程<b class='flag-5'>鸿蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>开发</b>基础案例之-03交通红绿灯

    鸿蒙OpenHarmony南向:【Hi3861开发板介绍】

    Hi3861开发板是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持,并配套提供开放、易用的
    的头像 发表于 05-06 17:19 885次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>介绍】