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

Support for the digital to Analog converter peripheral.

delay

Hardware delays, using Cortex-m systick.

dma

Direct Memory Access (DMA). This module handles initialization, and transfer configuration for DMA. The Dma::cfg_channel method is called by modules that use DMA.

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 helper macros.

rtc

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

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.

usart

This module allows for serial communication using the STM32 USART module. Supports Embedded HAL Read and Write 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. Only used on F303, L4x2, and L4x3. Other families that use USB use the usb_otg module.

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.

rcc_en_reset

Enables and resets peripheral clocks on various RCC registesr. The first argument is a apb1, ahb2 etc to specify the reg block. The second is something like tim1, and the third is a pac::RCC.

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 why we enable the DMA clock, see STM32F446 errata, section 2.1.1.