上一篇我們成功的在鴻蒙開(kāi)發(fā)板上輸出了 Hello World!這一篇將帶大家點(diǎn)亮 LED 燈。
本文重點(diǎn):
如何編寫(xiě)點(diǎn)亮 LED 燈程序
如何編譯燒錄點(diǎn)亮 LED 燈程序
如何調(diào)試點(diǎn)亮 LED 燈程序
步驟
步驟一:添加點(diǎn)亮 LED 源碼文件
①新增 my_led 文件夾
在 ./applications/BearPi/BearPi-HM_Nanomple 路徑下新建一個(gè) my_led 目錄,用于存放業(yè)務(wù)源碼文件。
②新增 led_example.c 文件
在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 路徑下新建一個(gè) led_example.c 文件,該文件為業(yè)務(wù)源碼文件。
③新增 BUILD.gn 文件
在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 路徑下新建一個(gè) BUILD.gn 文件,該文件為業(yè)務(wù)源碼編譯腳本。
步驟二:添加點(diǎn)亮 LED 燈源碼
代碼如下:
#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);//設(shè)置GPIO_2的復(fù)用功能為普通GPIO GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_GPIO_DIR_OUT);//設(shè)置GPIO_2為輸出模式 GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,1);//設(shè)置GPIO_2輸出高電平點(diǎn)亮LED燈 } APP_FEATURE_INIT(led);
步驟三:編寫(xiě)業(yè)務(wù)編譯構(gòu)建文件 BUILD.gn
編寫(xiě)用于將業(yè)務(wù)構(gòu)建成靜態(tài)庫(kù)的 BUILD.gn 文件:

在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 下的 BUILD.gn 文件中添加如下代碼:
static_library("myled"){ sources=[ "led.c" ] include_dirs=[ "http://utils/native/lite/include", "http://base/iot_hardware/interfaces/kits/wifiiot_lite" ] }
static_library 中指定業(yè)務(wù)模塊的編譯結(jié)果,為靜態(tài)庫(kù)文件 libmyled.a,開(kāi)發(fā)者根據(jù)實(shí)際情況完成填寫(xiě)。
sources 中指定靜態(tài)庫(kù) .a 所依賴的 .c 文件及其路徑,若路徑中包含"http://"則表示絕對(duì)路徑(此處為代碼根路徑),若不包含"http://"則表示相對(duì)路徑。
include_dirs 中指定 source 所需要依賴的 .h 文件路徑。
步驟四:編寫(xiě)模塊編譯構(gòu)建文件 BUILD.gn
編寫(xiě)模塊 BUILD.gn 文件,指定需參與構(gòu)建的特性模塊。

在 ./applications/BearPi/BearPi-HM_Nanomple 下的 BUILD.gn 文件中添加如下代碼:
import("http://build/lite/config/component/lite_component.gni")
lite_component("app"){
features=[
"my_led:myled",
]
}
my_led 是相對(duì)路徑,指向:
./applications/BearPi/BearPi-HM_Nanomple/my_led/BUILD.gnled 是目標(biāo),指向:
./applications/BearPi/BearPi-HM_Nanomple/my_led/BUILD.gn中的static_library("myled")
Led閃爍實(shí)驗(yàn)
代碼如下:
調(diào)試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;i10;?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);
總結(jié)
如下:
#include"ohos_init.h"包含APP_FEATURE_INIT這個(gè)函數(shù) "http://base/iot_hardware/interfaces/kits/wifiiot_lite"相對(duì)路徑在Z:homeearpiBearPI_codeearpi-hm_nanoaseiot_hardwareinterfaceskitswifiiot_litewifiiot_gpio_ex.h Z:homeearpiBearPI_codeearpi-hm_nanoaseiot_hardwareinterfaceskitswifiiot_litewifiiot_gpio.h IoSetFunc————————》gpio的設(shè)置 GpioSetDir———————》gpio的模式
結(jié)果如下圖:

-
led
+關(guān)注
關(guān)注
243文章
24338瀏覽量
685014 -
led燈
+關(guān)注
關(guān)注
22文章
1602瀏覽量
110823 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
6027瀏覽量
110731 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2746瀏覽量
45140 -
鴻蒙開(kāi)發(fā)板
+關(guān)注
關(guān)注
1文章
30瀏覽量
4785
原文標(biāo)題:鴻蒙上點(diǎn)亮LED燈
文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
點(diǎn)亮STM32、FPGA和Liunx板子的LED燈
如何利用寄存器在stm32開(kāi)發(fā)板上點(diǎn)亮一個(gè)LED燈呢
在STM8上點(diǎn)亮LED的大致步驟有哪些
如何使用單片機(jī)點(diǎn)亮LED燈
如何使用AliOS Things在Developer Kit上點(diǎn)亮一個(gè)LED詳細(xì)教程
點(diǎn)亮LED燈的源代碼免費(fèi)下載
51單片機(jī)——點(diǎn)亮一個(gè)LED燈
STM8S自學(xué)筆記-003 GPIO輸出:點(diǎn)亮LED燈 and 跑馬燈特效
點(diǎn)亮LED燈條開(kāi)源分享
鴻蒙上實(shí)現(xiàn)“數(shù)字華容道”小游戲
簡(jiǎn)單的LED燈電路并點(diǎn)亮

鴻蒙上點(diǎn)亮LED燈
評(píng)論