鸿蒙设备开发2
添加Hello World源码文件
1、新增my_ app文件夹
在. /appl ications/BearPi/ BearPi-HM_ Nano/ sample路径下新建一个my_ app目录,用于存放业务源码文件。
2、新增hello_ world. c文件
在. /applications/BearPi/ BearPi-HM_ Nano/ sampl e/my_ ap路径下新建一个hello_ _world. c文件,该文件为业务源
码文件。
3、新增BUILD. gn文件
在. /appl icat ions/BearPi/ BearPi -HM_ Nano/ sample/my_ app路径下新建一个BUILD. gn文件,该文件为业务源码编译脚
本。
编写Hello World业务代码
添加He l1oWorld代码
在hello_ world. c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用Harmony0S启
动恢复模块接口APP_ FEATURE_ INIT() 启动业务。(APP_ FEATURE_ INIT定义在ohos_ init. h文件中)
#include <stdio.h>
#include "ohos_ init. h"
void Hello_ World(void)
{
printf("Hello World! \r\n");
}
APP_ FEATURE_ _INIT(Hello_ World);
编写业务编译构建文件BUILD.gn
编写用于将业务构建成静态库的BUILD. gn文件
在. /applicat ions/BearP i/ BearPi -HM/ sample/my_ app下的BUILD. gn文件中添加如下代码。
static_ library( "myapp") {
sources = [
"hello_ world. c"
include_ _dirs = [
"//utils/native/lite/ include"
}
static_ library 中指定业务模块的编译结果,为静态库文件libmyapp. a,开发者根据实际情况完成填写。
sources中 指定静态库. a所依赖的. c文件及其路径,若路径中包含”//“则表示绝对路径(此处为代码根路径),若不包含”//”则表示相对路径。
inc lude_ dirs 中指定source所需要依赖的. h文件路径。
编写模块编译构建文件BUILD.gn
编写模块BUILD. gn文件,指定需参与构建的特性模块。
在. /appl icat ions/ BearPi/ BearPi -HM/ sample’下的BUILD. gn文件中添加如下代码。
import(" //build/li te/ confi g/ component/ lite_ _component. gni”)
lite_ component(' app") {
features =[
my_ app:myapp",
}
my_ app是相对路径,指向. /applicat ions/BearPi/BearPi-HM/ sample/ my app/BUILD. gn。
myapp是目标,指向. /appli cations/ BearPi/BearPi-HM/ sample/my_ app/ BUILD. gn中的static library (" myapp’ )。
调试Hello World程序
1.在Visual Studio Code底部,点击"串口’按钮图标。
2.输入端口号,其他参数保持默认配置。按下开发板RESET按键,即可输出日志信息。
添加点亮LED源码文件
1、新增my_ 1ed文件夹
在. /applicat ions/BearPi/BearPi -HM_ Nano/ sampl e路径下新建一个my_ led目录,用于存放业务源码文件。
2、新增1ed_ example. c文件
在/ appl icat ions/ BearPi/BearPi-HM_ Nano/ sample/my_ led路径 下新建一个led_ example. c文件,该文件为业务源码文件。
3、新增BUILD. gn文件
在. /appl icat ions/BearPi/BearPi-HM_ Nano/ sample/my_ led路径 下新建一个BUILD. gn文件,该文件为业务源码编译脚本。
添加点亮LED灯源码
#include <stdio.h>
#include <unistd.h>
#include "ohos_ init .h"
#include "wifiiot_ .gpio.h"
#include "wifiiot_ .gpio_ _ex.h"
void Led. Samp1e(void)
{
GpioInit(); //初始化GPI0
IoSetFunc(WIFI_ I0T_ IO_ NAME_ _GPIO_ 2,WIFI_ IOT_ I0_ FUNC_ GPIO_ 2_ GPI0);//设 置GPI0_ 2的复用功能为普通GPI0
GpioSetDir(WIFI_ IOT_ I0_ NAME_ GPI0_ 2, WIFI_ IOT_ _GPI0_ DIR_ _OUT);//设置GPIO_ 2为输出模式
GpioSetoutputVal(WIFI_ IOT_ I0_ NAME_ GPIO_ 2,1);//设 置GPI0_ _2输出高电平点亮LED灯
APP_ FEATURE_ INIT(Led_ Sample);
调试LED程序
添加LED灯闪烁源码
#include "ohos_ _init.h"
#include "unistd.h"
#include "wifiiot_ gpio. h"
#include "wifiiot_ .gpio_ ex.h"
void led_ examp1e(void)
GpioInit();
IoSetFunC(WIFI_ IOT_ I0_ NAME_ _GPIO_ 2,WIFI_ IOT_ I0_ FUNC_ _GPIO_ _2_ GPI0);
GpioSetDir(WIFI_ IOT_ I0 NAME_ GPIO 2,WIFI IOT_ GPIO DIR_ OUT);
for(inti=0;i<10;i++)
{
GpioSetoutputVal(WIFI_ IOT_ I0 NAME _GPI0 2,1);
usleep( 1000000);
GpioSet0utputVal(WIFI_ IOT_ I0_ NAME_ _GPIO_ 2,0);
usleep( 1000000);
}
GpioSetoutputVal(WIFI_ IOT_ IO_ NAME_ GPI0_ 2,1);
APP_ FEATURE_ INIT(led_ example);