发 帖  
原厂入驻New
[经验]

【HarmonyOS HiSpark Wi-Fi IoT 套件】第四篇:驱动LED灯

2020-10-12 18:23:57  64 HiSpark
分享
0
本帖最后由 l_xy 于 2020-10-18 17:59 编辑

转载:https://bbs.elecfans.com/jishu_1996054_1_1.html

今天写驱动LED灯的程序。
01、在./applications/sample/wIFi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。例如:在app下新增业务LED_Demo。
02、在LED_Demo下新建LED_Demo.c文件。
03、在LED_Demo.c文件里面写如下代码:

#include <stdio.h>

#include <unistd.h>

#include "ohos_init.h"
#include "cmsis_os2.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"




static void *LedTask(const char *arg)
{
    (void)arg;
    while (1) {

       GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
        usleep(300000);

       GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
        usleep(300000);

    }

    return NULL;
}

static void LED_Demo(void)
{
    osThreadAttr_t attr;

    GpioInit();

    //复用引脚
   IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);

    //设置为输出
   GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);

    attr.name ="LedTask";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = 512;
    attr.priority = 26;

    if(osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
        printf("[LedExample]Falied to create LedTask!\n");
    }
}

SYS_RUN(LED_Demo);
04、在LED_Demo下新建BUILD.gn文件。
05、在BUILD.gn文件里面写如下代码:

static_library("LED_Demo") {
    sources = [
        "LED_Demo.c"

    include_dirs = [
       "//utils/native/lite/include",
       "//kernel/liteos_m/components/cmsis/2.0",
       "//base/iot_hardware/inteRFaces/kits/wifiiot_lite",
}
06、在./applications/sample/wifi-iot/app/BUILD.gn文件里面修改成如下代码
import("//build/lite/config/component/lite_component.gni")

lite_component("app"){
             features = [
                " LED_Demo:LED_Demo ",
}
07、保存文件。
08、进入ububtu系统里面。
09、输入python build.py wifiiot编译代码。
10、在VScode里面下载代码。
11、复位一下就可看到板子上LED1灯一闪一闪。


只有小组成员才能发言,加入小组>>

132个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表