梅科尔工作室-14.1 原创
直播学习记录
鸿蒙开发环境搭建
Linux编译服务器:Ubuntu16.04及以上64位系统版本,Shell使用bash
Windows工作台: Windows XP/Windows7/Windows10
1)从镜像站点下载压缩文件
https://repo.huaweicloud.com/harmonde-1.0.tar.gz
2)从HPM网站组件
HPM网站: https://hpm.harmonyos.com/# /cn/home
软环境要求: Linux服务器安装12.13.0+的Node.js
3)用包管理器命令行
hpm init -t default
hpm install @bearpi/bearpi_hm_nano
需要先注册gitee账号,并配置邮箱
源码链接:https://gitee.com/bearpi/bearpi-hm nano
Part.1
添加点亮LED源码文件
1、新增my_led文件夹
在./applications/BearPi/BearPi-HM_Nano/sample路径下新建一个my_led目录,用于存放业务源码文件。
2、新增led_example.c文件
在./applications/BearPi/BearPi-HM_Nano/sample/my_led路径下新建一个led_example.c文件,该文件为业
务源码文件。
3、新增BUILD.gn文件
在./applications/BearPi/BearPi-HM_Nano/sample/my_led路径下新建一个BUILD.gn文件,该文件为业务源码编
译脚本。
#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
void Led_Sample(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_Sample);
编写业务编译构建文件BUILD.gn
在./applications/BearPi/BearPi-HM_Nano/sample/my_led下的BUILD.gn文件中添加如下代码。
static_library("myled") {
sources = [
"led_example.c"
]
include_dirs = [
"//utils/native/lite/include",
"//base/iot_hardware/interfaces/kits/wifiiot_lite"
]
}
在./applications/BearPi/BearPi-HM_Nano/sample下的BUILD.gn文件中添加如下代码。
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"my_led:myled",
]
}
调试LED程序
#include "ohos_init.h"
#include "unistd.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);
for(int i = 0; i < 10; i++)
{
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,1);
usleep(1000000);
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,0);
usleep(1000000);
}
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,1);
}
APP_FEATURE_INIT(led_example);
Part.2
Ninja
(忍者???从名字就感觉到了神奇的速度→_→)
如何编译模块
代码如何执行
Part.3
CMSIS-RTOS2接口简介
了解即可