Crate stm32_hal2[][src]

Modules

adc

API for the ADC (Analog to Digital Converter)

clocks

This module contains clock configurations for various MCUs. They tend to be significantly different from one another, so we’ve feature-gated these files, rather than code within the files, to differentiate families.

crc

Cyclic Redundancy Check (CRC) support

dac

Digital to Analog converter.

delay

Hardware delays, using Cortex-m systick.

dma

Direct Memory Access Engine

flash

Read and write onboard flash memory.

gpio

This module provides functionality for General Purpose Input and Output (GPIO) pins, including all GPIOx register functions, and interrupts. It includes implementations of embedded-hal pin abstraction.

i2c

Inter-Integrated Circuit (I2C) bus. Also supports SMBUS. Implements traits from embedded-hal.

low_power

This module contains code used to place the MCU in low power modes. Reference section 5.3.3: Low power modes of the L4 Reference Manual.

pac
prelude

In the prelude, we export the embedded-hal traits we implement, and some custom ones.

rtc

Interface to the real time clock. For more details, see ST AN4759

serial

Serial module. Supports U[S]ART, CAN, and RS485 functionality, with DMA access. Implements traits from embedded-hal. This module support both polling and interrupt based accesses to the serial peripherals.

spi

Serial Peripheral Interface (SPI) bus. Implements traits from embedded-hal.

timer

Timers. Includes initialization, countdown functionality, interrupts, and PWM features.

traits

Traits used across the library. These may find general use beyond this library, and this module may eventually be moved to a standalone crate.

usb

USB support, including for simulated COM ports. This module is a thin wrapper required to work with the usbd crate. Requires the usb feature.

Macros

access_global

Syntax helper for getting global variables of the form Mutex<RefCell<Option>>> from an interrupt-free context - eg in interrupt handlers.

make_globals

Syntax helper for setting global variables of the form Mutex<RefCell<Option>>>. eg in interrupt handlers. Ideal for non-copy-type variables that can’t be initialized immediatiately.

make_simple_globals

Syntax helper for setting global variables of the form Mutex<Cell<>>>. eg in interrupt handlers. Ideal for copy-type variables.

Functions

debug_workaround

Workaround due to debugger disconnecting in WFI (and low-power) modes. This affects most (all?) STM32 devices. In production on battery-powered devices that don’t use DMA, consider removing this, to prevent power use by the DMA clock. For example, see STM32F446 errata, section 2.1.1.