上一篇我們成功的在鴻蒙開發板上輸出了 Hello World!這一篇將帶大家點亮 LED 燈。
本文重點:
如何編寫點亮 LED 燈程序
如何編譯燒錄點亮 LED 燈程序
如何調試點亮 LED 燈程序
步驟
步驟一:添加點亮 LED 源碼文件
①新增 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 燈源碼
代碼如下:
#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 文件:

在 ./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 中指定業務模塊的編譯結果,為靜態庫文件 libmyled.a,開發者根據實際情況完成填寫。
sources 中指定靜態庫 .a 所依賴的 .c 文件及其路徑,若路徑中包含"http://"則表示絕對路徑(此處為代碼根路徑),若不包含"http://"則表示相對路徑。
include_dirs 中指定 source 所需要依賴的 .h 文件路徑。
步驟四:編寫模塊編譯構建文件 BUILD.gn
編寫模塊 BUILD.gn 文件,指定需參與構建的特性模塊。

在 ./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 是目標,指向:
./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;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);
總結
如下:
#include"ohos_init.h"包含APP_FEATURE_INIT這個函數 "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的設置 GpioSetDir———————》gpio的模式
結果如下圖:

-
led
+關注
關注
243文章
24594瀏覽量
690816 -
led燈
+關注
關注
22文章
1606瀏覽量
111842 -
開發板
+關注
關注
26文章
6289瀏覽量
118051 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45883 -
鴻蒙開發板
+關注
關注
1文章
31瀏覽量
4847
原文標題:鴻蒙上點亮LED燈
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
點亮STM32、FPGA和Liunx板子的LED燈
在STM8上點亮LED的大致步驟有哪些
如何使用AliOS Things在Developer Kit上點亮一個LED詳細教程
STM8S自學筆記-003 GPIO輸出:點亮LED燈 and 跑馬燈特效
鴻蒙上點亮LED燈
評論