• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Написание библиотеки для Arduino на основе ESP-IDF

dmitrij9992905

New member
Доброго времени суток!

Пытаюсь написать библиотеку для arduino на основе esp-idf, однако она в ардуино даже не компилируется, жалуется на зависимости.

Вопрос: как ссылаться на встроенные esp-idf-библиотеки? И можно ли подключить часть библиотек для esp-idf к библиотекам на arduino?

Такого вопроса еще нигде не задавали, и в интернете, пока не видел мануалов по этому поводу, так что извините, что довольно-таки кратко. [off]Хочу написать библиотеку для Bluetooth Audio на Arduino[/off]
 

enjoynering

Well-known member
может вот так?
Код:
extern "C"
{
#include "user_interface.h" //load wifi Espressif SDK functions
}
 

Юрий Ботов

Moderator
Команда форума
Конечно можно. Есть штатный способ включения С библиотек в С++ (Ардуино на самом деле С++ с надстройкой) - "extern "C" {}". В примерах Ардуино для ESP8266 есть пример "CallSDKFunctions". Вот он:
Код:
/*
   NativeSdk by Simon Peter
   Access functionality from the Espressif ESP8266 SDK
   This example code is in the public domain

   This is for advanced users.
   Note that this makes your code dependent on the ESP8266, which is generally
   a bad idea. So you should try to use esp8266/Arduino functionality
   where possible instead, in order to abstract away the hardware dependency.
*/

// Expose Espressif SDK functionality - wrapped in ifdef so that it still
// compiles on other platforms
#ifdef ESP8266
extern "C" {
#include "user_interface.h"
}
#endif

void setup() {
  Serial.begin(115200);
}

void loop() {
  // Call Espressif SDK functionality - wrapped in ifdef so that it still
  // compiles on other platforms
  #ifdef ESP8266
  Serial.print("wifi_station_get_hostname: ");
  Serial.println(wifi_station_get_hostname());
  #endif
  delay(1000);
}
 
Сверху Снизу