|
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連連載】+ 5、點亮三色燈板, 學(xué)習(xí)GPIO例程,驅(qū)動 HiSpark_WiFi_IoT_SSL_VER.A 板上的紅、黃、綠色LED燈。
一、硬件電路
1.1、HiSpark_WiFi_IoT_SSL板對應(yīng)的LED引腳圖
01.png (30.99 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳
02.png (24.17 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳
1.2、擴(kuò)展板對應(yīng)的IO口
03.png (51.07 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳
二、程序
2.1、創(chuàng)建文件
在applications/sample/wifi-iot/app/下面創(chuàng)建測試用的文件
04.png (47.04 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳
2.2、源文件
2.2.1、ledgpio.c
- #include <stdio.h>
- #include <unistd.h>
- #include “ohos_init.h“
- #include “cmsis_os2.h“
- #include “wifiiot_gpio.h“
- #include “wifiiot_gpio_ex.h“
- #define LED_RED WIFI_IOT_IO_NAME_GPIO_10
- #define LED_YELL WIFI_IOT_IO_NAME_GPIO_12
- #define LED_GREEN WIFI_IOT_IO_NAME_GPIO_11
- static void *LedTask(const char *arg)
- {
- (void)arg;
- while (1)
- {
- GpioSetOutputVal(LED_RED, 1);
- GpioSetOutputVal(LED_YELL, 1);
- GpioSetOutputVal(LED_GREEN, 1);
- usleep(200000);
- GpioSetOutputVal(LED_RED, 0);
- GpioSetOutputVal(LED_YELL, 1);
- GpioSetOutputVal(LED_GREEN, 1);
- usleep(200000);
- GpioSetOutputVal(LED_RED, 1);
- GpioSetOutputVal(LED_YELL, 0);
- GpioSetOutputVal(LED_GREEN, 1);
- usleep(200000);
- GpioSetOutputVal(LED_RED, 1);
- GpioSetOutputVal(LED_YELL, 1);
- GpioSetOutputVal(LED_GREEN, 0);
- usleep(200000);
- }
- return NULL;
- }
- static void ledgpio(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);
- IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_GPIO); //LED_RED
- GpioSetDir(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_GPIO_DIR_OUT);
- IoSetFunc(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_IO_FUNC_GPIO_11_GPIO); //LED_YELL
- GpioSetDir(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_GPIO_DIR_OUT);
- IoSetFunc(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_IO_FUNC_GPIO_12_GPIO); //LED_GREEN
- GpioSetDir(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_GPIO_DIR_OUT);
- attr.name = “LedgpioTask“;
- attr.attr_bits = 0U;
- attr.cb_mem = NULL;
- attr.cb_size = 0U;
- attr.stack_mem = NULL;
- attr.stack_size = 512;
- attr.priority = 27;
- if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
- printf(“[Ledgpio] Falied to create LedTask!\n“);
- }
- }
- SYS_RUN(ledgpio);
復(fù)制代碼
2.2.2、BUID.gn
- static_library(“l(fā)edgpio“) {
- sources = [
- “l(fā)edgpio.c“
- ]
- include_dirs = [
- “//utils/native/lite/include“,
- “//kernel/liteos_m/components/cmsis/2.0“,
- “//base/iot_hardware/inteRFaces/kits/wifiiot_lite“,
- ]
- }
復(fù)制代碼
2.3、編譯程序
05.png (29.25 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳
2.4、下載程序
06.png (58.71 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳
三、程序執(zhí)行
三色LED燈順序點亮
100.gif (859.75 KB, 下載次數(shù): 0)
下載附件 保存到相冊
1 小時前 上傳 |
|