网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

鸿蒙上点亮LED灯

时间:2023-01-16 10:28

人气:

作者:admin

标签: 开发  LED  鸿蒙 

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

上一篇我们成功的在鸿蒙开发板上输出了 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

审核编辑:汤梓红
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信