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
    +关注

    关注

    237

    文章

    22420

    浏览量

    645790
  • led灯
    +关注

    关注

    22

    文章

    1549

    浏览量

    107016
  • 开发板
    +关注

    关注

    25

    文章

    4403

    浏览量

    93788
  • 鸿蒙
    +关注

    关注

    55

    文章

    1564

    浏览量

    42109
  • 鸿蒙开发板
    +关注

    关注

    1

    文章

    17

    浏览量

    4443

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

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

收藏 人收藏

    评论

    相关推荐

    点亮1个LED!!!!!!!!!

    点亮1个LED!!!!!!!!!!!!
    发表于 09-17 20:37

    LED点亮问题

    请教大家,汽车LED,日间行车灯点亮,怎么设计啊?
    发表于 11-14 20:27

    Arduino项目实战点亮LED

    第二章 点亮LED(Arduino边做边学:从点亮Led到物联网)
    发表于 05-14 17:06

    如何去编写点亮LED的程序?

    怎样去搭建一种点亮LED的工程?如何去编写点亮LED的程序?
    发表于 07-28 06:32

    如何点亮步进马达的led

    如何点亮步进马达的led
    发表于 10-18 06:23

    怎样去点亮LED

    1、基础介绍LED,即发光二极管,有正极负极之分,方向接入正确,并且电流合适时,LED才会被点亮,如下图:为了防止电流过高,
    发表于 11-22 06:23

    什么是LED?如何去点亮LED

    单片机AT89C51--3.点亮LED1. 什么是LED2. LED的工作参数3. 原理图分
    发表于 12-08 07:46

    如何点亮一个LED

    如何点亮一个LED
    发表于 01-17 08:33

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

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

    如何以不同的亮度来点亮LED

    LED的原理是什么?如何以不同的亮度来点亮LED呢?
    发表于 01-20 06:52

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

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

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

    中文编程鸿蒙Hi3861开发使用智珑开发板控制点亮板载LED,板载LED与第2引脚连接,只需
    发表于 05-11 15:50

    如何使用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>详细教程

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

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

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

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