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

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

3天内不再提示

鸿蒙上点亮LED灯

OpenHarmony技术社区 来源:OST开源开发者 作者:HUAWEI_Engineer 2023-01-16 10:28 次阅读

上一篇我们成功的在鸿蒙开发板上输出了 Hello World!这一篇将带大家点亮 LED 灯。

本文重点:

如何编写点亮 LED 灯程序

如何编译烧录点亮 LED 灯程序

如何调试点亮 LED 灯程序

步骤

步骤一:添加点亮 LED 源码文件

2e53a5c8-94a5-11ed-bfe3-dac502259ad0.png

①新增 my_led 文件夹

在 ./applications/BearPi/BearPi-HM_Nanomple 路径下新建一个 my_led 目录,用于存放业务源码文件。

②新增 led_example.c 文件

在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 路径下新建一个 led_example.c 文件,该文件为业务源码文件。

③新增 BUILD.gn 文件

在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 路径下新建一个 BUILD.gn 文件,该文件为业务源码编译脚本。

步骤二:添加点亮 LED 灯源码

2e659bfc-94a5-11ed-bfe3-dac502259ad0.png

代码如下:

#include
#include
#include"ohos_init.h"
#include"wifiiot_gpio.h"
#include"wifiiot_gpio_ex.h"
voidled(void)
{
GpioInit();//初始化GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_IO_FUNC_GPIO_2_GPIO);//设置GPIO_2的复用功能为普通GPIO
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_GPIO_DIR_OUT);//设置GPIO_2为输出模式
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,1);//设置GPIO_2输出高电平点亮LED灯
}
APP_FEATURE_INIT(led);

步骤三:编写业务编译构建文件 BUILD.gn

编写用于将业务构建成静态库的 BUILD.gn 文件:

2e7701d0-94a5-11ed-bfe3-dac502259ad0.png

在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 下的 BUILD.gn 文件中添加如下代码:

static_library("myled"){
sources=[
"led.c"
]
include_dirs=[
"//utils/native/lite/include",
"//base/iot_hardware/interfaces/kits/wifiiot_lite"
]
}

static_library 中指定业务模块的编译结果,为静态库文件 libmyled.a,开发者根据实际情况完成填写。

sources 中指定静态库 .a 所依赖的 .c 文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。

include_dirs 中指定 source 所需要依赖的 .h 文件路径。

步骤四:编写模块编译构建文件 BUILD.gn

编写模块 BUILD.gn 文件,指定需参与构建的特性模块。

2e93a0f6-94a5-11ed-bfe3-dac502259ad0.png

在 ./applications/BearPi/BearPi-HM_Nanomple 下的 BUILD.gn 文件中添加如下代码:

import("//build/lite/config/component/lite_component.gni")
lite_component("app"){
features=[
"my_led:myled",
]
}

my_led 是相对路径,指向:

./applications/BearPi/BearPi-HM_Nanomple/my_led/BUILD.gn
led 是目标,指向:
./applications/BearPi/BearPi-HM_Nanomple/my_led/BUILD.gn中的static_library("myled")

Led闪烁实验

代码如下:

调试LED程序
#include"ohos_init.h"
#include"unistd.h"
#include"wifiiot_gpio.h"
#include"wifiiot_gpio_ex.h"
voidled_delay(void)
{
GpioInit();
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_IO_FUNC_GPIO_2_GPIO);
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_GPIO_DIR_OUT);
for(inti=0;i< 10; i++)
{
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,1);
usleep(1000000);
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,0);
usleep(1000000);
}

}
APP_FEATURE_INIT(led_delay);

总结

如下:

#include"ohos_init.h"包含APP_FEATURE_INIT这个函数
"//base/iot_hardware/interfaces/kits/wifiiot_lite"相对路径在Z:homeearpiBearPI_codeearpi-hm_nanoaseiot_hardwareinterfaceskitswifiiot_litewifiiot_gpio_ex.h
Z:homeearpiBearPI_codeearpi-hm_nanoaseiot_hardwareinterfaceskitswifiiot_litewifiiot_gpio.h

IoSetFunc————————》gpio的设置
GpioSetDir———————》gpio的模式

结果如下图:

2ea21c58-94a5-11ed-bfe3-dac502259ad0.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    240

    文章

    23128

    浏览量

    658245
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107823
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97158
  • 鸿蒙
    +关注

    关注

    57

    文章

    2306

    浏览量

    42728
  • 鸿蒙开发板
    +关注

    关注

    1

    文章

    21

    浏览量

    4467

原文标题:鸿蒙上点亮LED灯

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    点亮STM32、FPGA和Liunx板子的LED

    摘要:你点亮过多少板子的LED呢?有很多小伙伴要求讲一下STM32、FPGA、Liunx三者之间有什么不同。其实不同点很多,口说无凭,今天就来点亮一下STM32、FPGA和Liunx
    的头像 发表于 04-18 11:16 9216次阅读

    汇编点亮LED——极简的魅力

    介绍4句汇编语言点亮LED
    的头像 发表于 04-27 08:58 78.8w次阅读
    汇编<b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>——极简的魅力

    如何利用寄存器在stm32开发板上点亮一个LED

    如何利用寄存器在stm32开发板上点亮一个LED呢?其原理是什么?
    发表于 01-19 07:05

    在STM8上点亮LED的大致步骤有哪些

    **点亮LED**  点亮一个LED,应该是大多数单片机教程的第一步。这是最为基础的一步,也是最令人兴奋的一步,迈出这一小步就是迈入STM
    发表于 02-25 06:37

    LED点亮程序

    LED点亮程序,适合初学者使用,单片机c语言程序。
    发表于 03-15 10:42 6次下载

    如何使用单片机点亮LED

    我们学单片机,第一个程序就是点亮一盏LED,那么我单片机开启面向对象方式的第一步也是点亮一盏LED
    发表于 07-16 17:39 4次下载
    如何使用单片机<b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    如何使用AliOS Things在Developer Kit上点亮一个LED详细教程

    本文档的主要内容详细介绍的是如何使用AliOS Things在Developer Kit上点亮一个LED详细教程资料免费下载。
    发表于 05-22 18:00 8次下载
    如何使用AliOS Things在Developer Kit<b class='flag-5'>上点亮</b>一个<b class='flag-5'>LED</b>详细教程

    如何使用寄存器点亮LED

    本文档的主要内容详细介绍的是如何使用寄存器点亮LED
    发表于 04-15 17:00 10次下载
    如何使用寄存器<b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    点亮LED的源代码免费下载

    本文档的主要内容详细介绍的是点亮LED的源代码免费下载。
    发表于 09-14 08:00 1次下载
    <b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>的源代码免费下载

    51单片机——点亮一个LED

    51单片机——点亮一个LED文章目录51单片机——点亮一个LED一、原理图二、
    发表于 11-23 18:06 16次下载
    51单片机——<b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    STM8S自学笔记-003 GPIO输出:点亮LED and 跑马灯特效

    **点亮LED**  点亮一个LED,应该是大多数单片机教程的第一步。这是最为基础的一步,也是最令人兴奋的一步,迈出这一小步就是迈入STM
    发表于 01-13 12:38 7次下载
    STM8S自学笔记-003 GPIO输出:<b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b> and 跑马灯特效

    点亮LED条开源分享

    电子发烧友网站提供《点亮LED条开源分享.zip》资料免费下载
    发表于 11-18 09:17 4次下载
    <b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>条开源分享

    鸿蒙上实现“数字华容道”小游戏

    本篇文章教大家如何在鸿蒙上实现“数字华容道”小游戏。
    的头像 发表于 12-26 09:52 1193次阅读

    简单的LED电路并点亮

    电子发烧友网站提供《简单的LED电路并点亮.zip》资料免费下载
    发表于 02-03 09:23 1次下载
    简单的<b class='flag-5'>LED</b><b class='flag-5'>灯</b>电路并<b class='flag-5'>点亮</b>

    鸿蒙上开发“小蜜蜂”游戏

    小时候我们有个熟悉的游戏叫小蜜蜂。本文教大家在鸿蒙上学做这个小蜜蜂游戏。
    的头像 发表于 04-03 11:27 1617次阅读