stm32f4xx_hal/
prelude.rs

1//! Convenience re-export of multiple traits.
2//!
3//! This allows a HAL user to conveniently import this module and have all the
4//! helper traits already imported.
5//! Otherwise the use of peripherals would require the import of the
6//! corresponding module and the import of the trait, which connects this HAL
7//! to the autogenerated svd2rust API in [crate::pac].
8//!
9//! # Example
10//!
11//! Consider the following code.
12//!
13//! ```
14//! #[entry]
15//! fn main() -> ! {
16//!     let dp = pac::Peripherals::take().unwrap();
17//!     let gpiog = dp.GPIOG.split();
18//!     let mut led1 = gpiog.pg13.into_push_pull_output();
19//!     led1.set_high().unwrap();
20//! }
21//! ```
22//!
23//! Without the prelude we would have to import the following traits:
24//!
25//! ```
26//! use stm32f4xx_hal::gpio::GpioExt; // for the split method.
27//! use embedded_hal::digital::v2::OutputPin; // for the set_high() function.
28//! // And more use-statements with more complex code.
29//! ```
30//!
31//! These imports are a bit unintuitive, because we can create the objects
32//! without the import. But we need these traits to access most of their
33//! functions.
34//!
35//! The prelude module keeps the import section cleaner:
36//! ```
37//! use stm32f4xx_hal::prelude::*;
38//! ```
39pub use embedded_hal::delay::DelayNs as _;
40pub use embedded_hal_02::adc::OneShot as _embedded_hal_adc_OneShot;
41pub use embedded_hal_02::blocking::serial::Write as _embedded_hal_blocking_serial_Write;
42pub use embedded_hal_02::Capture as _embedded_hal_Capture;
43pub use embedded_hal_02::Pwm as _embedded_hal_Pwm;
44pub use embedded_hal_02::Qei as _embedded_hal_Qei;
45pub use embedded_hal_nb::serial::Read as _embedded_hal_serial_nb_Read;
46pub use embedded_hal_nb::serial::Write as _embedded_hal_serial_nb_Write;
47pub use fugit::ExtU32 as _fugit_ExtU32;
48pub use fugit::RateExtU32 as _fugit_RateExtU32;
49
50#[cfg(all(feature = "can", any(feature = "can1", feature = "can2")))]
51pub use crate::can::CanExt as _stm32f4xx_hal_can_CanExt;
52#[cfg(feature = "dac")]
53pub use crate::dac::DacExt as _stm32f4xx_hal_dac_DacExt;
54pub use crate::dma::traits::DmaEventExt as _;
55pub use crate::dma::traits::DmaFlagExt as _;
56pub use crate::dma::traits::Stream as _;
57pub use crate::dma::traits::StreamISR as _;
58#[cfg(feature = "fmpi2c1")]
59pub use crate::fmpi2c::I2cExt as _;
60pub use crate::gpio::outport::OutPort as _;
61pub use crate::gpio::ExtiPin as _stm32f4xx_hal_gpio_ExtiPin;
62pub use crate::gpio::GpioExt as _stm32f4xx_hal_gpio_GpioExt;
63pub use crate::i2c::dma::I2CMasterHandleIT as _stm32f4xx_hal_i2c_dma_I2CMasterHandleIT;
64pub use crate::i2c::dma::I2CMasterReadDMA as _stm32f4xx_hal_i2c_dma_I2CMasterReadDMA;
65pub use crate::i2c::dma::I2CMasterWriteDMA as _stm32f4xx_hal_i2c_dma_I2CMasterWriteDMA;
66pub use crate::i2c::dma::I2CMasterWriteReadDMA as _stm32f4xx_hal_i2c_dma_I2CMasterWriteReadDMA;
67pub use crate::i2c::I2cExt as _stm32f4xx_hal_i2c_I2cExt;
68pub use crate::i2s::I2sExt as _stm32f4xx_hal_i2s_I2sExt;
69pub use crate::qei::QeiExt as _stm32f4xx_hal_QeiExt;
70pub use crate::rcc::RccExt as _stm32f4xx_hal_rcc_RccExt;
71#[cfg(feature = "rng")]
72pub use crate::rng::RngExt as _stm32f4xx_hal_rng_RngExt;
73#[cfg(feature = "sai")]
74pub use crate::sai::SAIExt as _;
75pub use crate::serial::dma::SerialHandleIT as _stm32f4xx_hal_serial_dma_SerialHandleIT;
76pub use crate::serial::dma::SerialReadDMA as _stm32f4xx_hal_serial_dma_SerialReadDMA;
77pub use crate::serial::dma::SerialWriteDMA as _stm32f4xx_hal_serial_dma_SerialWriteDMA;
78pub use crate::serial::RxISR as _stm32f4xx_hal_serial_RxISR;
79pub use crate::serial::RxListen as _stm32f4xx_hal_serial_RxListen;
80pub use crate::serial::SerialExt as _stm32f4xx_hal_serial_SerialExt;
81pub use crate::serial::TxISR as _stm32f4xx_hal_serial_TxISR;
82pub use crate::serial::TxListen as _stm32f4xx_hal_serial_TxListen;
83pub use crate::spi::SpiExt as _stm32f4xx_hal_spi_SpiExt;
84pub use crate::syscfg::SysCfgExt as _stm32f4xx_hal_syscfg_SysCfgExt;
85pub use crate::time::U32Ext as _stm32f4xx_hal_time_U32Ext;
86#[cfg(feature = "rtic1")]
87pub use crate::timer::MonoTimer64Ext as _;
88#[cfg(feature = "rtic1")]
89pub use crate::timer::MonoTimerExt as _;
90#[cfg(feature = "rtic2")]
91#[cfg(any(
92    feature = "rtic-tim2",
93    feature = "rtic-tim3",
94    feature = "rtic-tim4",
95    feature = "rtic-tim5"
96))]
97pub use crate::timer::MonoTimerExt as _;
98pub use crate::timer::PwmExt as _stm32f4xx_hal_timer_PwmExt;
99#[cfg(feature = "rtic1")]
100pub use crate::timer::SysMonoTimerExt as _stm32f4xx_hal_timer_SysMonoTimerExt;
101pub use crate::timer::SysTimerExt as _stm32f4xx_hal_timer_SysCounterExt;
102pub use crate::timer::TimerExt as _stm32f4xx_hal_timer_TimerExt;
103
104pub use crate::ClearFlags as _;
105pub use crate::Listen as _;
106pub use crate::ReadFlags as _;