MicroPython:Библиотеки/esp

Материал из Онлайн справочника
Версия от 16:54, 22 октября 2020; Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =Модуль esp – функции, связан...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Модуль esp – функции, связанные с ESP8266 и ESP32docs.micropython.org -

Модуль esp содержит программный инструментарий для работы с микроконтроллерами ESP8266 и ESP32. Некоторые из функций будут доступны только на одном из этих микроконтроллеров.

Функции


• esp.sleep_type([sleep_type]) Примечание: Это функция только для ESP8266. Задает или считывает то, в каком режиме сна находится микроконтроллер. Если задать в этой функции аргумент sleep_type, у ESP8266 будет активирован режим сна, заданный в этом аргументе. Если эта функция будет вызвана без аргументов, то вернет текущий режим сна. Режимы сна задаются при помощи следующих констант: o SLEEP_NONE – все функции включены. o SLEEP_MODEM – режим «сна» модема. Это выключит цепь WiFi-модема. o SLEEP_LIGHT – режим легкого сна. Это выключит цепь WiFi-модема и будет периодически останавливать работу процессора. Система входит в режим сна автоматически, когда это возможно. • esp.deepsleep(time_us=0, /) Примечание: Это функция исключительно для ESP8266. На ESP32 используйте machine.deepsleep(). Вводит микроконтроллер в режим глубокого сна. Это выключает все системы микроконтроллера, кроме цепи RTC-часов, которые можно использовать для перезапуска микроконтроллера через заданное количество времени, если контакт 16 подключен к контакту сброса. В противном случае микроконтроллер будет находиться в режиме сна, пока его не сбросят вручную. • esp.flash_id() Примечание: Это функция только для ESP8266. Считывает ID устройства с flash-памятью. • esp.flash_size() – считывает общий размер flash-памяти. • esp.flash_user_start() – считывает смещение памяти, где начинается пространство, которое может использовать пользователь. • esp.flash_read(byte_offset, length_or_buffer), • esp.flash_write(byte_offset, bytes), • esp.flash_erase(sector_no), • esp.set_native_code_location(start, length) Примечание: Это функции только для ESP8266. Задает место, где будет размещаться и выполняться нативный код после его компиляции. Нативный код генерируется, когда в функции применяются декораторы @micropython.native, @micropython.viper и @micropython.asm_xtensa. ESP8266 должна выполнять код либо из iRAM, либо из flash-памяти размером менее 1 Мб (которая отображена в память), и эта функция как раз управляет тем, где будет находиться этот код. Если в аргументах start и length будет None, нативный код будет расположен в неиспользуемой области памяти в конце участка iRAM1. Размер этой неиспользуемой области зависит от прошивки и обычно невелик (около 500 байт), но его достаточно для хранения нескольких очень маленьких функций. Преимущество использования этого участка iRAM1 в том, что он не изнашивается из-за записи на него. Если в start или length будет не None, то это должны быть целые числа. В start задается байтовое смещение с начала flash-памяти, куда будет сохраняться нативный код. В length задается, сколько байтов flash-памяти, начиная со start, можно использовать для хранения нативного кода. Значения в start и length должны быть кратны размеру сектора (4096 байт). Перед записью flash-память будет автоматически стерта, так что убедитесь, что используете участок, который больше никак не используется (например, прошивкой файловой системы). При использовании flash-памяти для хранения нативного кода сумма значений в start и length должна быть меньше или равна 1 мегабайту. Помните, что после многократных стираний (и записей) flash-память может износиться, так что пользуйтесь этой функцией по минимуму. В частности, нативный код должен быть перекомпилирован и перезаписан на flash-память при каждом запуске (включая выход из режима глубокого сна). В обоих сценариях выше (будь то iRAM1 или flash-память), если в заданной области не будет свободного места, то использование нативного декоратора в функции приведет к тому, что во время ее компиляции будет возбуждено исключение MemoryError.


См.также

Внешние ссылки