Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

ESP32 API

ESP

uint8_t getChipRevision();

Функция getChipRevision() возвращает номер ревизии чипа.


void setup() {
  Serial.begin(115200);
  Serial.print("Ревизия чипа: ");
  Serial.println(ESP.getChipRevision());
}

void loop() {}

uint64_t getEfuseMac();

Функция getEfuseMac() возвращает идентификатор платы, который по сути является его MAC-адресом.


uint64_t chipid;

void setup() {
  Serial.begin(115200);
  chipid = ESP.getEfuseMac(); //The chip ID is essentially its MAC address(length: 6 bytes).
  Serial.printf("ESP32 Chip ID = %04X", (uint16_t)(chipid >> 32)); //print High 2 bytes
  Serial.printf("%08X\n", (uint32_t)chipid); //print Low 4bytes.
}

void loop() {}

uint32_t getFlashChipSize();

Функция getFlashChipSize возвращает размер флеш-памяти в байтах.


void setup() {
  Serial.begin(115200);
  Serial.printf("Flash chip size:\t%d (bytes)\n", ESP.getFlashChipSize());
}

void loop() {}

Результат Flash chip size: 4194304 (bytes)

uint32_t getFlashChipSpeed();

Функция getFlashChipSpeed() возвращает частоту чипа.


void setup() {
  Serial.begin(115200);
  Serial.printf("Flash chip frequency:\t%d (Hz)\n", ESP.getFlashChipSpeed());
}

void loop() {}

Результат Flash chip frequency: 80000000 (Hz)

uint32_t getFreeHeap();

Функция getFreeHeap() возвращает количество доступной кучи в памяти.


void setup() {
  Serial.begin(115200);
  Serial.printf("Free heap size:\t%d (bytes)\n", ESP.getFreeHeap());
}

void loop() {}

Результат: Free heap size: 362780 (bytes)

uint32_t getHeapSize();

Функция getHeapSize() возвращает полный размер кучи в памяти.


void setup() {
  Serial.begin(115200);
  Serial.printf("Total heap size:\t%d (bytes)\n", ESP.getHeapSize());
}

void loop() {}

uint32_t getMaxAllocHeap();

Функция getMaxAllocHeap() возвращает размер самого большого блока кучи, который может быть выделен.


void setup() {
  Serial.begin(115200);
  Serial.printf("Largest block of heap that can be allocated at once:\t%d (bytes)\n", ESP.getMaxAllocHeap());
}

void loop() {}

uint32_t getMinFreeHeap();

Возвращает меньший уровень свободной кучи с момента загрузки (?).


void setup() {
  Serial.begin(115200);
  Serial.printf("Lowest level of free heap since boot:\t%d (bytes)\n", ESP.getMinFreeHeap());
}

void loop() {}

const char * getSdkVersion();

Функция getSdkVersion() возвращает версию SDK для платы.


void setup() {
  Serial.begin(115200);
  Serial.print("Версия SDK: ");
  Serial.println(ESP.getSdkVersion());
}

void loop() {}

Результат: Версия SDK: v3.2.3-14-gd3e562907

void restart();

Функция restart() программно перезагружает плату ESP32.


void setup() {
  Serial.begin(115200);
  Serial.println("Перезагружаем через 10 секунд");
  // Ждём 10 секунд
  delay(10000);

  // Перезапускаем ESP
  ESP.restart();
}

void loop() {}

Другие функции

//SPI RAM
uint32_t getPsramSize();
uint32_t getFreePsram();
uint32_t getMinFreePsram();
uint32_t getMaxAllocPsram();

uint32_t getCpuFreqMHz(){ return getCpuFrequencyMhz(); }
inline uint32_t getCycleCount() __attribute__((always_inline));

void deepSleep(uint32_t time_us);

FlashMode_t getFlashChipMode();

uint32_t magicFlashChipSize(uint8_t byte);
uint32_t magicFlashChipSpeed(uint8_t byte);
FlashMode_t magicFlashChipMode(uint8_t byte);

uint32_t getSketchSize();
String getSketchMD5();
uint32_t getFreeSketchSpace();

bool flashEraseSector(uint32_t sector);
bool flashWrite(uint32_t offset, uint32_t *data, size_t size);
bool flashRead(uint32_t offset, uint32_t *data, size_t size);
Реклама