上一篇我們成功的在鴻蒙開發(fā)板上輸出了 Hello World!這一篇將帶大家點(diǎn)亮 LED 燈。
本文重點(diǎn):
如何編寫點(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);
步驟三:編寫業(yè)務(wù)編譯構(gòu)建文件 BUILD.gn
編寫用于將業(yè)務(wù)構(gòu)建成靜態(tài)庫的 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)庫文件 libmyled.a,開發(fā)者根據(jù)實(shí)際情況完成填寫。
sources 中指定靜態(tài)庫 .a 所依賴的 .c 文件及其路徑,若路徑中包含"http://"則表示絕對路徑(此處為代碼根路徑),若不包含"http://"則表示相對路徑。
include_dirs 中指定 source 所需要依賴的 .h 文件路徑。
步驟四:編寫模塊編譯構(gòu)建文件 BUILD.gn
編寫模塊 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 是相對路徑,指向:
./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"相對路徑在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)注
242文章
23849瀏覽量
674382 -
led燈
+關(guān)注
關(guān)注
22文章
1596瀏覽量
109769 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5687瀏覽量
104947 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2623瀏覽量
44076 -
鴻蒙開發(fā)板
+關(guān)注
關(guān)注
1文章
28瀏覽量
4696
原文標(biāo)題:鴻蒙上點(diǎn)亮LED燈
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
點(diǎn)亮STM32、FPGA和Liunx板子的LED燈
如何利用寄存器在stm32開發(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 跑馬燈特效

評論