上一篇我們成功的在鴻蒙開發(fā)板上輸出了 Hello World!這一篇將帶大家點亮 LED 燈。
本文重點:
如何編寫點亮 LED 燈程序
如何編譯燒錄點亮 LED 燈程序
如何調(diào)試點亮 LED 燈程序
步驟
步驟一:添加點亮 LED 源碼文件
①新增 my_led 文件夾
在 ./applications/BearPi/BearPi-HM_Nanomple 路徑下新建一個 my_led 目錄,用于存放業(yè)務(wù)源碼文件。
②新增 led_example.c 文件
在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 路徑下新建一個 led_example.c 文件,該文件為業(yè)務(wù)源碼文件。
③新增 BUILD.gn 文件
在 ./applications/BearPi/BearPi-HM_Nanomple/my_led 路徑下新建一個 BUILD.gn 文件,該文件為業(yè)務(wù)源碼編譯腳本。
步驟二:添加點亮 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輸出高電平點亮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ù)實際情況完成填寫。
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閃爍實驗
代碼如下:
調(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這個函數(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)注
240文章
23073瀏覽量
657086 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
107753 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
4900瀏覽量
97067 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2303瀏覽量
42693 -
鴻蒙開發(fā)板
+關(guān)注
關(guān)注
1文章
21瀏覽量
4464
原文標(biāo)題:鴻蒙上點亮LED燈
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論