OpenHarmony快速入门

编写Helloworld

创建文件夹

[git clone所在目录]bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\sample目录下创建my_app文件夹。(记好文件夹的名称一会要用)
在这里插入图片描述

编写HelloWorld

在刚刚创建的my_app文件夹下,编写hello_world.c(记住名字下面要用)文件,可以不用特意创建src文件夹。

#include <stdio.h>
//导入的这个h文件是项目自带的,内部定义了APP_FEATURE_INIT
#include "ohos_init.h"

void HelloWorld(void)
{
  printf("Hello World\r\n");
}

//harmony启动恢复接口
APP_FEATURE_INIT(HelloWorld);

编写BUILD.gn

这个BUILD.gn文件名必须大写,否则会出错.
这个文件是放在my_app文件夹下

//指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
static_library("myapp") {
 sources=[
  #刚刚创建,hello_world.c 注意名称要一直
  "hello_world.c"
 ]
  include_dirs=[
    #刚刚在hello_world.c文件中引入的include文件
    # 符号//表示项目的根路径
    "//utils/native/lite/include"
  ]
}

修改模块编译构建文件BUILD.gn

[git clone所在目录]bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\sample	目录下的BUILD.gn文件
import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
		#。。。。。。。。。。省略。。。。。。。。

        #"Zx_Developer:zx_develop_sample"  ##不参与构建,为开发者贡献演示结构,其中Zx为 Z1,Z2...Z100
        #"Z1_hi3861_uart_ylc:uart_hi3861",
        #"Z2_hi3861_flash_ylc:flash_example",
        #在最后添加这一行命令,my_app就是一开始创建的my_app文件,myapp是刚才在BUILD.gn中定义的static_library后的名称。
        "my_app:myapp",
    ]
}

然后编译文件并烧录,
烧录的还是Hi3861_wifiiot_app_allinone.bin文件。

烧录完成后就可以在mobaxterm中看到Hello World
在这里插入图片描述

点亮led灯

步骤和上面差不多,所以简写

  1. sample目录下创建my_leb文件夹
  2. 创建leb_example.c文件
#include "ohos_init.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"

void led_example(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);

  GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1);
}
APP_FEATURE_INIT(led_example);
  1. my_leb下创建BUILD.gn文件
static_library("myleb") {
 sources=[
  "led_example.c"
 ]
  include_dirs=[
    "//utils/native/lite/include",
    #这里存放wifiiot_gpio.h和wifiiot_gpio_ex.h
    "//base/iot_hardware/interfaces/kits/wifiiot_lite"
  ]
}
  1. 修改修改模块编译构建文件BUILD.gn
    在features最后一行添加
"my_leb:myleb"

注意前面加个逗号,和上一行分开。

  1. 烤录到开发板
    成功时,led灯会持续闪烁
  2. 修改led_example.c添加时led灯闪烁的代码
#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"

void led_example(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);

  //控制led灯的闪烁
  for (int i = 0; i < 10; i++)
  {
    //设置WIFI_IOT_IO_NAME_GPIO_2,1表示亮灯
    GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1);
    usleep(1000000);
    // 0表示灯灭
    GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 0);
    usleep(1000000);
  }
  GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1);
}
APP_FEATURE_INIT(led_example);
  1. 烧录代码
    成功后led灯缓慢闪烁10次

openharmony编译构建介绍

ninja是一个比Makefile效率更高的编译构建工具。Google开发。
当我们在命令行运行python build.py BearPi-HM_Nano命令时,ninja就被启动了
这个BearPi-HM_Nano其实来自项目更目录下list/product/文件夹下的BearPi-HM_Nano.json

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值