【入门到实战】OpenHarmony轻量和小型系统设备开发:LED外设控制

鸿蒙OpenHarmony【LED外设控制】 (基于Hi3861开发板) OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介绍如何通过调用OpenHarmony的NDK接口,实现对GPIO控制,达到LED闪烁的效果。其他的IOT外设控制,开发者可根据API指导文档完成,此处不逐一介绍。 阅读详情

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


概述

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号管脚相连。

    #define LED_TEST_GPIO 9

     说明: 开发板原理图,请开发者联系Hi3861购买渠道客服获取。

  3. 使用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");
        }
    }
    
  4. 在循环任务中通过周期性亮灭形式实现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;
            }
        }
    }
    
  5. 在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)

    SYS_RUN(LedExampleEntry);
    
  6. 修改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闪烁图

Harmony鸿蒙南向外设驱动开发-Light Light驱动模型为上层Light硬件服务层提供稳定的灯控制能力接口,包括获取灯类型、配置点灯模式、配置灯闪烁效果、点灯、熄灯等 阅读详情

相关推荐

OpenHarmony南向设备开发:轻量和小型系统-LED外设控制

本文介绍如何通过调用OpenHarmony的NDK接口,实现对GPIO控制,达到LED闪烁的效果。

初一十五的博客 1011

OpenHarmony轻量系统开发【5】驱动之GPIO点灯

OpenHarmony为轻量系统提供了一套简单的驱动封装接口,函数的定义相关头文件位于“base\iot_hardware\peripheral\interfaces\kits”这里是代码实现,具体是将hi3861相关的驱动接口封装成鸿蒙的驱动接口。这里只有头文件,具体的函数实现,需要在对应的soc中,具体路径定义由。编译后烧录进去,应该可以看到复位按键旁边的LED灯一直在闪烁。所以我们可以知道,具体的路径就是。4.鸿蒙开发系统底层方向。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。

maniuT的博客 922

鸿蒙OpenHarmony【LED外设控制】 轻量和小型系统设备

OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介绍如何通过调用OpenHarmony的NDK接口,实现对GPIO控制,达到LED闪烁的效果。其他的IOT外设控制,开发者可根据API指导文档完成,此处不逐一介绍。

adsjgfjha123123的博客 890

OpenHarmony轻量系统书籍推荐《OpenHarmony轻量设备开发理论与实战》

最近大家问的智能家居套件方面有没有可以参考的资料,这里给大家统一回复一下推荐大家可以看这本书。

坚果的博客 1万+

OpenHarmony 鸿蒙南向设备开发系列课,带你从入门到实战(环境搭建、源码下载&分析&编译、GN语法、Uboot、鸿蒙内核启动流程、硬件开发)

《OpenHarmony南向开发实战指南》摘要:本文系统介绍了OpenHarmony设备侧开发全流程,重点讲解了环境搭建(包含Ubuntu配置、DevEcoDeviceTool安装)、源码获取与编译、GN语法解析等核心技术。通过Hi3516/Hi3861开发板案例,详细剖析了Uboot引导、内核启动流程及GPIO/I2C驱动开发等实战内容。针对南向开发特点,文章提供了从工具链配置到驱动开发的完整解决方案,并推荐了进阶学习路径。本教程可作为嵌入式工程师掌握OpenHarmony南向开发的实用手册,帮助开发者快

abcdlwt的博客 2200

从零构建:QEMU模拟器中的OpenHarmony轻量系统开发环境全攻略

本文详细介绍了如何在QEMU模拟器中搭建OpenHarmony4.1轻量系统开发环境,涵盖从基础软件安装到QEMU专项配置的全过程。通过模拟ARM Cortex-M4开发板,开发者无需实体硬件即可进行OpenHarmony开发,特别适合快速验证和教学演示。文章还提供了参数调优、外设模拟配置及常见问题排查等实用技巧。

weixin_29250573的博客 450

OpenHarmony 标准/小型/轻量 系统编译

官方路径:https://gitee.com/openharmony,进入以后在公告栏有最新版本路径:“社区已于2025-01-22发布OpenHarmony-v5.0.2-Release版本, 详情请参考https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.2-release.md”。建议选择 通过repo获取->方式一(推荐)->从版本发布Tag节点获取源码。hb set选择编译目标。

weixin_42938827的博客 1945

OpenHarmony 3类系统(L0/L1/L2)对比:从128KiB到128MiB内存的5大差异点

本文深入解析OpenHarmony三类系统(L0/L1/L2)的核心差异,涵盖从128KiB到128MiB内存的硬件选型指南。通过对比轻量系统、小型系统和标准系统的内核架构、图形处理、开发工具等关键特性,为开发者提供智能设备操作系统选型的实用建议,助力高效开发。

alince20008的博客 365

OpenHarmony开发者文档开源项目

导读 此工程存放OpenHarmony提供的快速入门、开发指南、API参考等开发者文档,欢迎参与OpenHarmony开发者文档开源项目,与我们一起完善开发者文档。 文档目录结构 Openharmony概述 设备开发 轻量和小型系统开发指导(参考内存<128MB) overview:设备开发导读 quick-start:快速入门(搭建环境、获取源码、编译、烧录等) Basic Capability:开发基础能力

月梦工作室 3641

OpenHarmony轻量系统Wi-Fi智能开关设计与实现

智能开关是物联网终端设备的基础形态,其核心在于低功耗微控制器、可靠执行机构与本地化通信协议的协同。基于ARM Cortex-M4F架构的Wi-Fi SoC(如Hi3861)可集成网络协议栈与硬件加密引擎,显著降低系统复杂度;采用舵机替代继电器实现物理开关驱动,兼顾硬断电安全性和长期机械可靠性。该方案适用于OpenHarmony LiteOS-M等轻量级嵌入式操作系统,支持AP/STA双模部署,在教学实践、家居自动化及电池供电场景中具备典型工程价值。本文围绕ITCAST-HI3861开发模组,详解从电源管理、

weixin_33193177的博客 274

LiteOS与OpenHarmony双系统开发板实战:从硬件选型到分布式应用开发

在物联网和嵌入式系统开发领域,操作系统是连接硬件与应用的核心软件层,其选型直接影响设备的性能、功耗和功能扩展性。从原理上看,操作系统通过硬件抽象层管理底层资源,为上层应用提供统一的编程接口。轻量级物联网操作系统(如LiteOS)以其内核精简、低功耗和实时性见长,适合资源受限的终端设备;而全场景分布式操作系统(如OpenHarmony)则通过分布式软总线、统一数据管理等架构,实现跨设备的无缝协同,技术价值在于打破设备孤岛,构建智能互联生态。在应用场景上,前者常用于传感器节点、控制器等对成本敏感的产品,后者则适

weixin_42523718的博客 571

OpenHarmony主干集成BearPi-HM Micro:轻量设备开发标准化实战

板级支持包(BSP)是连接硬件与操作系统的核心软件层,它通过提供标准化的驱动程序和硬件抽象接口,使操作系统能够在特定硬件平台上稳定运行。其原理在于对芯片外设、内存管理和中断控制器等底层资源进行统一封装,向上层提供一致的API。这一技术对于嵌入式开发至关重要,它极大地提升了代码的可复用性和跨平台移植效率,是构建健壮物联网(IoT)生态的基石。在OpenHarmony这类面向全场景的分布式操作系统中,标准化的BSP是实现硬件多样性和生态统一的关键。BearPi-HM Micro开发板作为典型的轻量级IoT设备,

weixin_28685045的博客 256

鸿蒙Wi-Fi智能开关硬件设计与OpenHarmony轻量系统实践

智能开关是物联网终端的核心载体,其本质是融合电力控制、无线通信与嵌入式安全的边缘设备。基于OpenHarmony轻量系统构建的Wi-Fi智能开关,依托LiteOS-M实时内核与HDF驱动框架,实现低资源占用下的稳定调度与硬件抽象;通过Hi3861主控原生支持,深度集成分布式软总线与安全OTA能力,显著提升设备协同性与固件可信度。该方案兼顾单火线兼容、过流保护、本地离线控制等工程刚需,在家庭自动化、智能照明、小功率电器管理等场景中具备高落地性,为国产鸿蒙生态下可量产IoT终端提供了完整参考范式。

weixin_29443363的博客 118

揭秘OpenHarmony如何完美支持Python:开发者必知的3大核心技术突破

掌握OpenHarmony Python适配教程,轻松实现Python在OpenHarmony系统的高效运行。涵盖跨平台部署、运行时环境构建与原生接口调用三大核心技术,适用于智能设备开发场景。性能优化显著,开发门槛低,值得收藏。

QuickSolve的博客 987

【雕爷学编程】MicroPython手册之 OpenMV Cam LED 发光二极管

代码中,我们首先使用pyb.Pin()函数将X1引脚配置为输出模式,然后使用led.value()方法设置LED灯的亮度,并使用pyb.delay()函数进行延时,以实现LED灯亮度的循环调整。请注意,具体的LED控制操作可能因OpenMV Cam的型号和外设配置而有所不同,上述示例提供了一个基本的框架,你可以根据实际情况进行适当的调整和实现。MicroPython的OpenMV Cam具备LED(发光二极管)控制功能,可以通过编程控制OpenMV Cam上的LED灯的亮灭状态。

雕爷学编程 521

CocosCreator视频播放黑屏?手把手教你封装VideoPlayer组件解决Web环境问题

本文针对Cocos Creator在Web环境下视频播放黑屏等常见问题,提供了一套工程化的VideoPlayer组件封装解决方案。文章深入剖析了浏览器自动播放策略、DOM样式隔离等核心挑战,并手把手教你实现一个健壮的管理器,涵盖兼容性处理、性能优化与内存管理,确保视频播放稳定流畅。

plum99的博客 598

OpenHarmony轻量系统驱动的Wi-Fi智能电源开关设计

智能电源开关是嵌入式物联网终端的核心控制设备,其本质是通过微控制器实现对交流负载的本地化、低延迟通断控制。原理上依赖MCU实时调度、隔离驱动电路与安全强电接口协同工作,技术价值在于兼顾电气安全性、协议栈轻量化与离线自治能力。典型应用场景包括家庭自动化、实验室远程设备管理及小型商用负载控制。本方案基于OpenHarmony LiteOS-M内核,融合STM32L431主控与ESP32-WROOM-32 Wi-Fi模组,采用AT指令精简交互与本地状态持久化机制,实现高可靠、低成本、易部署的220V智能开关终端。

weixin_42153793的博客 229

similarity network fusion for aggregating data types on a genomic scale

基因组规模上的聚合数据类型的相似性网络融合 摘要:         近期的技术已经使收集不同类型的全基因组数据十分划算,结合这些数据去创建一个给定的疾病或生物过程的一个全面视图的计算方法是有必要的。相似网络融合(SNF:similarity network fusion)通过创建每一个可利用的数据类型的样本(如,患者)的网络可以解决这个问题。例如,创建一个给定一群患者疾病的全面视图,SNF计算

augustar学习笔记 7869

OpenHarmony Hi3861电机驱动开发板设计

H桥驱动是嵌入式电机控制的核心技术,通过逻辑电平切换实现直流电机正反转与制动;其性能直接受MCU GPIO驱动能力、电源完整性及保护机制影响。在物联网边缘控制场景中,将Wi-Fi联网能力与硬件级电机驱动深度集成,可显著降低系统耦合度与开发门槛。OpenHarmony LiteOS-M凭借轻量实时性与国产芯片适配优势,成为边缘端机电一体化设备的理想软件底座。本文围绕Hi3861V100主控与YX-75V15双H桥芯片协同设计,详解电气兼容性、故障监控、低功耗调度等工程实践要点,适用于智能小车、教学实验与云边协

weixin_42234168的博客 159

信号编辑软件ZX/SignalEditing

信号编辑软件ZX/SignalEditing

weixin_45661395的博客 955

如何通过 Python 爬虫抓取并分析政府开放数据

通过本文的介绍,我们展示了如何使用Python 爬虫抓取并分析政府开放数据。通过requests获取政府开放数据的 API 接口数据。使用和pandas进行数据清洗与存储。使用matplotlib对数据进行可视化。你可以根据不同的政府开放平台和数据集进行调整,应用于不同领域的数据分析,如公共健康、交通、环保等。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1077

OpenHarmony智能WiFi开关:Hi3861嵌入式设计与分布式控制实现

智能开关是物联网终端的核心执行单元,其本质是将数字控制信号安全、可靠地转化为交流负载通断动作。实现该功能需兼顾嵌入式实时性、电气隔离安全性、无线通信稳定性及生态协同能力。基于OpenHarmony轻量系统开发的WiFi开关,依托LiteOS-M内核与HDF驱动框架,可统一管理硬件资源并抽象设备能力;结合分布式软总线技术,天然支持跨设备服务发现与状态同步,显著提升多端协同体验。典型应用场景包括家庭自动化、智慧办公电源管理及工业边缘节点远程启停。本文以Hi3861V100为硬件平台,详解从过零检测、光耦隔离到H

weixin_35973118的博客 117
上一篇: 【入门到实战】OpenHarmony南向子系统开发:唤醒源定制开发指南
下一篇: 【入门到实战】OpenHarmony轻量和小型系统设备开发:集成三方SDK
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值