Crate esp32_hal

source ·
Expand description

no_std HAL for the ESP32 from Espressif.

This package has been deprecated in favour of esp-hal. Please refer to the migration guide for help with updating your projects to use the new esp-hal package:

https://github.com/esp-rs/esp-hal/releases/tag/v0.16.0

Implements a number of the traits defined by the various packages in the embedded-hal repository.

§Cargo Features

The available cargo features for this package are listed below, along with a brief description of each feature.

  • async - Enable support for asynchronous operation, with interfaces provided by embedded-hal-async and embedded-io-async
  • bluetooth - Enable support for using the Bluetooth radio
  • debug - Enable debug features in the HAL (used for development)
  • defmt - Enable defmt::Format on certain types
  • eh1 - Implement the traits defined in the 1.0.0-xxx pre-releases of embedded-hal, embedded-hal-nb, and embedded-io
  • embassy - Enable support for embassy, a modern asynchronous embedded framework
  • embassy-executor-interrupt - Use the multicore-aware interrupt-mode embassy executor
  • embassy-executor-thread - Use the multicore-aware thread-mode embassy executor
  • embassy-time-timg0 - Enable the embassy time driver using the TIMG0 peripheral. The TIMG0 peripheral has two alarms available for use
  • embassy-integrated-timers - Uses hardware timers as alarms for the executors. Using this feature limits the number of executors to the number of hardware alarms provided by the time driver
  • embassy-generic-queue-N (where N can be 8, 16, 32, 64 or 128) - Use a generic timer queue of size N for the executors’ timer queues. Using this feature can expand the number of executors you can use to N
  • log - enable log output using the log crate
  • psram-2m - Use externally connected PSRAM (2MB)
  • psram-4m - Use externally connected PSRAM (4MB)
  • psram-8m - Use externally connected PSRAM (8MB)
  • rt - Runtime support
  • ufmt - Implement the ufmt_write::uWrite trait for the UART driver
  • vectored - Enable interrupt vectoring
  • xtal-26mhz - The target device uses a 26MHz crystal
  • xtal-40mhz - The target device uses a 40MHz crystal
§Default Features

The rt, vectored, xtal-40mhz and embassy-integrated-timers features are enabled by default.

Modules§

  • Advanced Encryption Standard (AES) support.
  • Analog peripherals
  • Clock Control
  • Control CPU Cores (ESP32)
  • Delay driver
  • Direct Memory Access Commons
  • Reading of eFuses (ESP32)
  • General Purpose I/Os
  • I2C Driver
  • I2S Master
  • Interrupt support
  • LEDC (LED PWM Controller) peripheral control
  • Overview
  • MCPWM (Motor Control Pulse Width Modulator) peripheral
  • Pulse Counter peripheral driver
  • Exclusive peripheral access
  • Peripheral instance singletons (ESP32)
  • The prelude
  • PSRAM “virtual peripheral” driver (ESP32)
  • Hardware and Software Reset
  • Remote Control Peripheral (RMT)
  • Random Number Generator
  • ESP ROM libraries
  • RSA Accelerator support.
  • RTC_CNTL (Real-Time Clock Control) and Low-power Management
  • Secure Hash Algorithm peripheral driver
  • Serial Peripheral Interface
  • System Control
  • General-purpose timers
  • State of the CPU saved when entering exception or interrupt
  • Two-wire Automotive Interface (TWAI)
  • UART driver

Macros§

Structs§

Enums§

  • Available CPU cores

Functions§

  • Which core the application is currently executing on

Attribute Macros§

  • Marks a function as the main function to be called on program start