[文章]【HarmonyOS开发板试用】IOT板子LED闪烁

阅读量0
0
0


这周试一下GPIO控制

首先在./applications/sample/wifi-iot/app下新建一个目录,路径文件结构如下。
QQ截图20210124205847.png

然后是app/my_led/my_led.c文件
创建一个任务500ms翻转一下LED
  1. #include <stdio.h>

  2. #include <unistd.h>

  3. #include "ohos_init.h"
  4. #include "cmsis_os2.h"
  5. #include "wifiiot_gpio.h"
  6. #include "wifiiot_gpio_ex.h"

  7. #define LED_GPIO WIFI_IOT_IO_NAME_GPIO_9

  8. #define LED_TASK_STACK_SIZE 512 //任务堆栈
  9. #define LED_TASK_PRIO 25        //任务优先级

  10. static void *LedTask(const char *arg)
  11. {
  12.     (void)arg;
  13.     for(;;) {
  14.         GpioSetOutputVal(LED_GPIO, 0);
  15.         usleep(500*1000); //延时500ms
  16.         GpioSetOutputVal(LED_GPIO, 1);
  17.         usleep(500*1000);
  18.     }

  19.     return NULL;
  20. }

  21. static void myLedEntry(void)
  22. {
  23.     osThreadAttr_t attr;

  24.     GpioInit(); //初始化io模块
  25.     IoSetFunc(LED_GPIO, WIFI_IOT_IO_FUNC_GPIO_9_GPIO); //配置GPIO9为GPIO模式
  26.     GpioSetDir(LED_GPIO, WIFI_IOT_GPIO_DIR_OUT);       //配置GPIO9为输出

  27.     attr.name = "LedTask";
  28.     attr.attr_bits = 0U;
  29.     attr.cb_mem = NULL;
  30.     attr.cb_size = 0U;
  31.     attr.stack_mem = NULL;
  32.     attr.stack_size = LED_TASK_STACK_SIZE;
  33.     attr.priority = LED_TASK_PRIO;

  34.     if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
  35.         printf("[my_led] Falied to create LedTask!n");  //创建任务失败后打印
  36.     }
  37. }

  38. SYS_RUN(myLedEntry);
复制代码

app/my_led.c/BUILD.gn文件
  1. static_library("my_led") {
  2.     sources = [
  3.         "my_led.c"
  4.     ]

  5.     include_dirs = [
  6.         "//utils/native/lite/include",
  7.         "//kernel/liteos_m/components/cmsis/2.0",
  8.         "//base/iot_hardware/interfaces/kits/wifiiot_lite",
  9.     ]
  10. }
复制代码

app/BUILD.gn文件
  1. import("//build/lite/config/component/lite_component.gni")

  2. lite_component("app") {
  3.     features = [
  4.         "my_led:my_led",
  5.     ]
  6. }
复制代码

最后下载到板子上,效果如下。
VID_20210123_232729.gif

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友