Практика разработки Bear Pie 丨 Говоря о трансплантации датчиков LiteOS

Интернет вещей

**Аннотация:** В этой статье кратко рассказывается, как трансплантировать датчики в LiteOS на основе макетной платы Bear Pie, чтобы реализовать соответствующее управление датчиками.

1 hello world

Я считаю, что первой функцией, которую все начинают с изучения языков программирования, должна быть HelloWorld.Эта статья познакомит вас с тем, как реализовать трансплантацию датчиков из hello_world_demo.

Сначала мы создаем проект HelloWorld, выбираем STM32_BearPi → hello_world_demo, имя проекта можно настроить.

После создания мы нажимаем «Компилировать», затем записываем его на макетную плату, открываем последовательный порт VSCode-IoTLink и устанавливаем параметры подключения последовательного порта в соответствии с рисунком, а затем нажимаем «Сброс», вы можете увидеть печать последовательного порта, как показано на рисунке ниже.

Прежде всего, давайте представим простой процесс запуска кода. Мы представили процесс запуска LiteOS в серии LiteOS. Мы знаем, что после загрузки программы на плату разработки мы сначала нажмем кнопку «Сброс», чтобы начать разработку. Поэтому на отладочной плате первая функция, выполняемая после включения питания, это функция ReSet_Handler.

Сначала найдите соответствующий файл запуска los_startup.S (найдите каталог файла в соответствии с используемой операционной системой и серией MCU платы), вы можете видеть, что он написан на языке ассемблера, конкретный процесс запуска был введен в Серия LiteOS, здесь только младшая строка 91, запустите основную функцию, а затем программа начнет выполняться из основной функции.

Далее смотрим на основную функцию, в основной функции от аппаратной инициализации до инициализации ядра, затем инициализируется последовательный порт, а затем в функцию link_test(), в которой создается задача, и ее входная функция функция Link_main.

В конце функции Link_main вызывается функция с именем standard_app_demo_main().По поиску в IDE мы видим, что в проекте есть большое количество функций с одинаковыми именами, так как же компилятор узнает, какая из них Вы можете увидеть .config Определение макроса user_demo в файле включает hello_world_demo, поэтому функция standard_app_demo_main() в hello_world_demo выполняется, чтобы напечатать Hello World! Это BearPi! в соответствии с его внутренними задачами и входными функциями. Далее будем пересаживать датчик.

2 Миграция датчиков

Прежде всего, мы видим, что в код LiteOS было включено большое количество кодов датчиков.Здесь в качестве примера используется E53_SC1.Конечно, эти датчики были адаптированы к макетной плате BearPi.Если вы хотите использовать свой собственный специальный датчик, вы можете сначала подключить датчик. Выполните определенную трансплантацию с макетной платой, включая привязку контактов и GPIO и т. д.

Во-первых, вам нужно добавить путь к файлу датчика в путь компиляции, чтобы компилятор мог найти код, настроить соответствующий путь файла датчика в userdemo.mk и найти раздел hello_world_demo в файле и добавить путь к файлу. . Конкретные строки на рис. путь, вам не нужно добавлять соответствующий код.

Во-первых, нам нужно добавить файл заголовка датчика в helloworld_demo.c, чтобы реализовать последующие вызовы связанных функций.

#include    "E53_SC1.h"

Затем структура вызывается для последующей печати данных.

E53_SC1_Data_TypeDef    E53_SC1_Data;

Затем в файле hello_world_demo.c добавьте функцию задачи для данных датчика.

static int app_sensor_entry()
{
    Init_E53_SC1();
    while (1)
    {
        E53_SC1_Read_Data();
        printf("luminance:%dn", (int)E53_SC1_Data.Lux);
        osal_task_sleep(2*1000);
    }
    return 0;
 
}

Создайте функцию задачи датчика в основной функции.

osal_task_create("app_sensor_entry", app_sensor_entry, NULL, 0x400,NULL,2);
osal_task_sleep(2*1000);

В частности, как показано ниже

После этого компилируем и прожигаем, и проверяем правильность трансплантации датчика через последовательный порт.

Нажмите «Подписаться», чтобы впервые узнать о новых технологиях HUAWEI CLOUD~