|
HarmonyOS HiSpark Wi-Fi IoT 套件试用连连载 第四篇:驱动LED灯, 今天写驱动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灯一闪一闪。 |
|