鸿蒙3. WiFi IoT智能家居套件 - Helloworld及基本开发框架
想了解更多内容,鸿蒙请访问:
和华为官方合作共建的居套件Hd及基本鸿蒙技术社区
https://harmonyos.51cto.com/#zz
参考官方教程:Hi3861开发板第一个示例程序
1.目录结构规划
在app下新增业务hello_world,其中hello_world.c为业务代码,开发框架BUILD.gn为编译脚本,鸿蒙具体规划目录结构如下:
. └── applications └── sample └── wifi-iot └── app │── hello_world │ │── hello_world.c │ └── BUILD.gn └── BUILD.gn2. hello_world.c 源码
/* 业务代码的居套件Hd及基本架构 1.任务处理函数HelloWorld_Task,实现业务初始化,开发框架并在while(1)中实现循环处理的鸿蒙业务 2.任务入口函数HelloWorld_Entry:实现任务的初始化,并注册任务处理函数 3.调用鸿蒙SYS_RUN(HelloWorld_Entry); 实现业务的服务器托管居套件Hd及基本注册 */ #include <stdio.h> #include <unistd.h> #include "ohos_init.h" #include "cmsis_os2.h" /*1. 任务函数:hello_world任务*/ static void* HelloWorld_Task(const char* arg) { (void)arg; printf("[HelloWorld] HelloWorld_Task()\n"); while(1) { //logic code for task usleep(500000);//us延时 } return NULL; } /*2.任务入口函数:实现任务的初始化*/ static void HelloWorld_Entry(void) { osThreadAttr_t attr = { 0}; printf("[HelloWorld] HelloWorld_Entry()\n"); attr.name = "HelloWorld_Task"; attr.attr_bits = 0U; attr.cb_mem = NULL; attr.cb_size = 0U; attr.stack_mem = NULL; attr.stack_size = 1024; attr.priority = osPriorityNormal; if (osThreadNew((osThreadFunc_t)HelloWorld_Task, NULL, &attr) == NULL) { printf("[HelloWorld] Falied to create LedTask!\n"); } } SYS_RUN(HelloWorld_Entry);3. 业务代码的编译脚本 BUILD.gn
路径:code\applications\sample\wifi-iot\app\hello_world\BUILD.gn
static_library("hello_world_app") { sources = [ "hello_world.c" ] include_dirs = [ "//utils/native/lite/include", "//kernel/liteos_m/components/cmsis/2.0", "//base/iot_hardware/interfaces/kits/wifiiot_lite", ] }4.模块的编译脚本BUILD.gn
路径:code\applications\sample\wifi-iot\app\BUILD.gn
import("//build/lite/config/component/lite_component.gni") lite_component("app") { features = [ "startup", "hello_world:hello_world_app", ] }5.执行结果:
6.总结
注意业务代码的项目路径,一定是开发框架在code\applications\sample\wifi-iot\app\目录下,按照业务进行新建文件夹
一个业务,鸿蒙可以理解为一个任务或者一个线程,居套件Hd及基本比如OLED液晶显示可以单独做为一个业务,开发框架流水灯可以单独作为一个业务。网站模板鸿蒙
后续代码,居套件Hd及基本简单的开发框架功能会继续在hello_world业务上进行添加,比如LED流水灯、按键中断灯,复杂的功能(比如WIFI,OLED显示)会重新起一个新的业务。
想了解更多内容,请访问:
和华为官方合作共建的亿华云计算鸿蒙技术社区
https://harmonyos.51cto.com/#zz