Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.02.2021
Сообщений: 1

ESP32 ESP-IDF VisualStudioCode Windows С++ для новичков

06.02.2021, 15:34. Показов 4928. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
и вот я решил попрограммировать микроконтроллеры(МК). Сначала все было легко но медленно. Потому что Micropython.
А теперь я застрял.

Берем ESP-wroom-32 devkit
Идем к производителю. Он нам объясняет как нужно начинать программировать.
что нужно всего лишь скачать и установить его Espressif IoT Development Framework (python лучше поставить руками,git c-make и ninja установщик поставит сам) ВСЕ/ПУТИ/УСТАНОВКИ/БЕЗ/ПРОБЕЛОВ/

на рабочем столе появляется ярлык ESP-IDF Command Prompt (cmd.exe) который, по идее, должен добавить в переменную PATH виндовса путь к idf.py. но почему-то не добавляет. ярлык запустил - всё работает. win+r cmd и говорит что нет в винде такой команды. попытки запустить от имени администратора успехом не увенчались.

Ну и ладно. Ставим VisualStudio Code (1.53) устанавливаем расширение с++ и espressif-idf. При установке последнего выбираем найти существующую esp-idf (иначе у вас их станет две).

Открываем папку idf\examples\get-started\blink

Открываем одну инструкцию и другую.

То ли дело было с микропитоном: создал файл, написал код, скопировал на МК, перезагрузил, работает.

А здесь нужно скомпилировать всё в бинарники и "прошивать".

открываем blink.c

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* Blink Example
   This example code is in the Public Domain (or CC0 licensed, at your option.)
   Unless required by applicable law or agreed to in writing, this
   software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
 
/* Can use project configuration menu (idf.py menuconfig) to choose the GPIO to blink,
   or you can edit the following line and set a number here.
*/
#define BLINK_GPIO CONFIG_BLINK_GPIO
 
void app_main(void)
{
    /* Configure the IOMUX register for pad BLINK_GPIO (some pads are
       muxed to GPIO on reset already, but some default to other
       functions and need to be switched to GPIO. Consult the
       Technical Reference for a list of pads and their default
       functions.)
    */
    gpio_reset_pin(BLINK_GPIO);
    /* Set the GPIO as a push/pull output */
    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
    while(1) {
        /* Blink off (output low) */
        printf("Turning off the LED\n");
        gpio_set_level(BLINK_GPIO, 0);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        /* Blink on (output high) */
        printf("Turning on the LED\n");
        gpio_set_level(BLINK_GPIO, 1);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

нажимаем кнопку build. (можно и через консоль, но кнопочка как-то удобней).
И у нас в папке проекта появляется папка build c огромной кучей файлов.

В целом, если все делать медленно (и с русскими субтитрами), то получилось даже поморгать светодиодом.
и все. Ну то есть осмысленного все.

Ну и первое что бросается в глаза и о чём говорят все инструкионщики: подчеркивания в #include.

откройте c_cpp_properties.json и добавьте путь к ESP-IDF. Добавил. нифига.
Добавьте путь к компилятору.
Ну и сейчас спустя около месяца чтения литературы и интернета я знаю что чтобы запустить код на С++ нужен компилятор. И они даже платные бывают. И разного рода умности и шустрости. и больше я ничего не знаю. И каких-то внятных объяснений когда нужно лазить в компилятор и как это делать я тоже не встретил.
Если я правильно понял, то установщик ESP-IDF ставит GCC (GNU compiller collection) и все это лежит где-то в папке
C:\Users\admin\.espressif\tools\xtensa-esp32-elf\esp-2020r2-8.2.0\xtensa-esp32-elf\bin\
А понял я это потому что имел неосторожность ткнуть да в одном месте.
И в основных настройках vscode у меня есть compile_commands.json

Все видео по настройке vscode начинаются с установки помпилятора. Вот собссно первый и главный вопрос. Мне нужно/можно ставить ещё один компилятор? Этот проект как-то же скомпилировался.

Был ещё вопрос нафига такое количество дополнительных файлов в папке проекта?
Вроде нашел ответ.
Я правильно понимаю, что make файлы это для UNIX и для больших проектов, чтоб код в миллион строк не перекомпилировать?
Как-то можно оставить "компилируй все подряд"?

Смотрим что напихали нам товарищи из espressif.

C++
1
2
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
Тут все понятно. Вот смотрите, наш новый процессор раскрывает себя во всей красе с использованием RealTimeOperationSystem. Учиться, учиться и ещё раз учиться. Прям по классику.

А вот это непонятно.
C++
1
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT)
Откуда эту функцию достали? Что в неё пихать?
Для Micropython есть нормальное человеческое описание.

Короче вот примерно такая каша у меня сейчас в голове.
А вот так выглядит мой c_cpp_properties.json
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/idf/**",
                "C:/idf/components/esp32/include/**",
                "C:/idf/components/freertos/**",
                "C:/Users/admin/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/",
                "C:/Users/admin/.espressif/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64",
            "compileCommands": "C:/idf/examples/get-started/blink/build/compile_commands.json"
        }
    ],
    "version": 4
}

Пока посмотрю как с Eclipse работать. мож чё на место встанет
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2021, 15:34
Ответы с готовыми решениями:

Ошибки в VisualStudioCode не подгружает UI и EventSystems
При запуске появляется вот такая информация: Starting OmniSharp server at 15.03.2020, 21:06:02 Target: c:\Project\New Esh\New...

блок для светодиодной ленты с esp 12
возможно ли спаять вручную блок питания для светодиодов и добавить к нему esp 12 и запрограммировать его что бы управлять освещением через...

Компилятор выдает ошибку преобразования [-fpermissive] для STM32 и ESP32
Здравствуйте. Прошу помощи знающих. При компиляции выдает ошибку преобразования типа переменной - invalid conversion from 'const...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2021, 15:34
Помогаю со студенческими работами здесь

TF IDF словарь
Коллеги, подскажите пожалуйста, каким способом реально отбросить хвосты наиболее употребимых и наименее употребимых слов в словаре имея TF...

Подскажите пожалуйста хорошую литературу для изучения с++, для новичков
Чтобы подошла человеку , который не сталкивался с программированием , а вот сейчас ему очень срочно и быстро нужно освоить хотя бы главные...

Не для новичков по C#
Задания не для новичка уж явно.., не могу сделать эти первые три задания? Ну вот 4-ую сделал, там я думаю любой сделает, даже без...

IT для новичков
Здравствуйте, вопрос такой: какие IT навыки, помимо знания языков программирования, могут понадобится в работе. Ну там слепой набор... И...

для новичков
Ищу партнёров для биржи статей в свою очередь готов оказать консультацию по вопросам продвижения и оптимизации. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru