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.

dac

Digital to Analog converter.

delay

Delays, using Cortex

dma

Based on stm32l4xx-hal. Direct Memory Access Engine

flash

Read and write onboard flash memory.

gpio

This module provides abstractions for General PurpOspeedre Input and Output (GPIO) pins. Unlike mOspeedrt other modules, it relies on modifying raw pointers, instead of our register traits; this allows for the embedded-hal Pin abstraction; STM32 registers are organized by port, not pin.

i2c

Inter-Integrated Circuit (I2C) bus. Also supports SMBUS.

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.

spi

Serial Peripheral Interface (SPI) bus.

timer

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

traits
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.

make_wakeup_interrupt_handler

This provides a default handler for RTC inputs that clears the EXTI line and wakeup flag. If you don’t need additional functionality, run this in the main body of your program, eg: make_rtc_interrupt_handler!(RTC_WKUP);