Светодиоды Hongmeng мерцают

HarmonyOS

Структура каталогов

Сначала создайте новый каталог (или набор структур каталогов) по пути ./applications/sample/wifi-iot/app для хранения файлов исходного кода бизнеса.
Эта процедура: добавьте бизнес-руководство под приложением, где hello_world.c — бизнес-код, а BUILD.gn — скрипт компиляции.Конкретная структура каталога планирования выглядит следующим образом:

.
└── applications
    └── sample
        └── wifi-iot
            └── app
                │── led
                │  │── led.c
                │  └── BUILD.gn
                └── BUILD.gn

图片

Деловой кодекс.

Создайте новый файл led.c в папке ./applications/sample/wifi-iot/app/led, создайте новую бизнес-функцию входа led.c и внедрите бизнес-логику. И в нижней части кода используйте интерфейс модуля восстановления запуска HarmonyOS SYS_RUN(), чтобы начать бизнес. (SYS_RUN определяется в файле ohos_init.h)

  1. BUILD.gn — скрипт компиляции

  2. led.c — файл, в котором находится код бизнес-логики

led.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_ON_TIME_US 2000000
#define LED_OFF_TIME_US 1000000

static void Led(void)
{
    //GPIO引脚初始化
    GpioInit();
    //设置管脚功能为GPIO
    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
    //设置GPIO引脚方向为输出
    GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
    while (1) {
        //设置GPIO09输出为低电平
        GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
        //打印输出日志
        printf("[DEMO] LED on.\n");
        //延时一定时间,即亮灯的持续时间
        usleep(LED_ON_TIME_US);
        //设置GPIO09输出为高电平
        GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
        //打印输出日志
        printf("[DEMO] LED off.\n");
        //延时一定时间,即灭灯的持续时间
        usleep(LED_OFF_TIME_US);
    }
}
SYS_RUN(Led);




BUILD.gn (приложение/BUILD.gn)

static_library("bahuyang") {
    sources = [
        "led.c"
    ]

    include_dirs = [
        "//utils/native/lite/include",
        "//kernel/liteos_m/components/cmsis/2.0",
        "//base/iot_hardware/interfaces/kits/wifiiot_lite",
    ]
}

  1. "bahuyang": имя сгенерированной статической библиотеки, которое можно изменить по желанию

  2. "led.c": файл кода

построить.дать вам ()

# Copyright (c) 2020 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build/lite/config/component/lite_component.gni")

import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
        #"startup",
        "led:bahuyang"
    ]
}


  1. Закомментируйте «запуск» и запустите наш собственный файл

  2. "led": каталог проекта

  3. bahuyang: файл статической библиотеки

Скомпилировать и записать

компилировать

В моей предыдущей статье я подробно объяснил, как компилировать. Вы можете оглянуться назад.
Входим в панель терминала, в соответствующей директории проекта вводим python build.py wifiiot
Компиляция, когда компиляция прошла успешно, это означает, что компиляция завершена.
图片

гореть

Использование инструмента HiBurn для записи я подробно рассказывал в предыдущей статье.
图片
После выбора файла нажмите «Подключиться», нажмите кнопку сброса макетной платы и запишите его.
После завершения программирования снова нажмите кнопку сброса.

явление наблюдения

Выберите скорость 115200 бод, подключитесь к соответствующему последовательному порту и посмотрите результаты помощника по отладке последовательного порта.
图片
Мигают светодиоды.

图片
图片

следовать за

Если вы хотите узнать больше об Интернете вещей и проектах умного дома, обратите внимание на официальный аккаунт и следите за моей колонкой проектной практики.

图片

Писать не легко, спасибо за поддержку.

В этой статье используетсяПомощник по синхронизации статейСинхронизировать