stm32: more docs.
This commit is contained in:
		@@ -354,7 +354,11 @@ unsafe fn uicr_write_masked(address: *mut u32, value: u32, mask: u32) -> WriteRe
 | 
				
			|||||||
    WriteResult::Written
 | 
					    WriteResult::Written
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Initialize peripherals with the provided configuration. This should only be called once at startup.
 | 
					/// Initialize the `embassy-nrf` HAL with the provided configuration.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This returns the peripheral singletons that can be used for creating drivers.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This should only be called once at startup, otherwise it panics.
 | 
				
			||||||
pub fn init(config: config::Config) -> Peripherals {
 | 
					pub fn init(config: config::Config) -> Peripherals {
 | 
				
			||||||
    // Do this first, so that it panics if user is calling `init` a second time
 | 
					    // Do this first, so that it panics if user is calling `init` a second time
 | 
				
			||||||
    // before doing anything important.
 | 
					    // before doing anything important.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
//! Analog to Digital (ADC) converter driver.
 | 
					//! Analog to Digital Converter (ADC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
#![allow(missing_docs)] // TODO
 | 
					#![allow(missing_docs)] // TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Controller Area Network (CAN)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg_attr(can_bxcan, path = "bxcan.rs")]
 | 
					#[cfg_attr(can_bxcan, path = "bxcan.rs")]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Cyclic Redundancy Check (CRC)
 | 
				
			||||||
#[cfg_attr(crc_v1, path = "v1.rs")]
 | 
					#[cfg_attr(crc_v1, path = "v1.rs")]
 | 
				
			||||||
#[cfg_attr(crc_v2, path = "v2v3.rs")]
 | 
					#[cfg_attr(crc_v2, path = "v2v3.rs")]
 | 
				
			||||||
#[cfg_attr(crc_v3, path = "v2v3.rs")]
 | 
					#[cfg_attr(crc_v3, path = "v2v3.rs")]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
//! Provide access to the STM32 digital-to-analog converter (DAC).
 | 
					//! Digital to Analog Converter (DAC)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use core::marker::PhantomData;
 | 
					use core::marker::PhantomData;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Digital Camera Interface (DCMI)
 | 
				
			||||||
use core::future::poll_fn;
 | 
					use core::future::poll_fn;
 | 
				
			||||||
use core::marker::PhantomData;
 | 
					use core::marker::PhantomData;
 | 
				
			||||||
use core::task::Poll;
 | 
					use core::task::Poll;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Ethernet (ETH)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg_attr(any(eth_v1a, eth_v1b, eth_v1c), path = "v1/mod.rs")]
 | 
					#[cfg_attr(any(eth_v1a, eth_v1b, eth_v1c), path = "v1/mod.rs")]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! External Interrupts (EXTI)
 | 
				
			||||||
use core::convert::Infallible;
 | 
					use core::convert::Infallible;
 | 
				
			||||||
use core::future::Future;
 | 
					use core::future::Future;
 | 
				
			||||||
use core::marker::PhantomData;
 | 
					use core::marker::PhantomData;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Flash memory (FLASH)
 | 
				
			||||||
use embedded_storage::nor_flash::{NorFlashError, NorFlashErrorKind};
 | 
					use embedded_storage::nor_flash::{NorFlashError, NorFlashErrorKind};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg(flash_f4)]
 | 
					#[cfg(flash_f4)]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Flexible Memory Controller (FMC) / Flexible Static Memory Controller (FSMC)
 | 
				
			||||||
use core::marker::PhantomData;
 | 
					use core::marker::PhantomData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use embassy_hal_internal::into_ref;
 | 
					use embassy_hal_internal::into_ref;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					//! High Resolution Timer (HRTIM)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mod traits;
 | 
					mod traits;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use core::marker::PhantomData;
 | 
					use core::marker::PhantomData;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Inter-Integrated-Circuit (I2C)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg_attr(i2c_v1, path = "v1.rs")]
 | 
					#[cfg_attr(i2c_v1, path = "v1.rs")]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Inter-IC Sound (I2S)
 | 
				
			||||||
use embassy_hal_internal::into_ref;
 | 
					use embassy_hal_internal::into_ref;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::gpio::sealed::{AFType, Pin as _};
 | 
					use crate::gpio::sealed::{AFType, Pin as _};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -149,15 +149,33 @@ use crate::interrupt::Priority;
 | 
				
			|||||||
pub use crate::pac::NVIC_PRIO_BITS;
 | 
					pub use crate::pac::NVIC_PRIO_BITS;
 | 
				
			||||||
use crate::rcc::sealed::RccPeripheral;
 | 
					use crate::rcc::sealed::RccPeripheral;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// `embassy-stm32` global configuration.
 | 
				
			||||||
#[non_exhaustive]
 | 
					#[non_exhaustive]
 | 
				
			||||||
pub struct Config {
 | 
					pub struct Config {
 | 
				
			||||||
 | 
					    /// RCC config.
 | 
				
			||||||
    pub rcc: rcc::Config,
 | 
					    pub rcc: rcc::Config,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// Enable debug during sleep.
 | 
				
			||||||
 | 
					    ///
 | 
				
			||||||
 | 
					    /// May incrase power consumption. Defaults to true.
 | 
				
			||||||
    #[cfg(dbgmcu)]
 | 
					    #[cfg(dbgmcu)]
 | 
				
			||||||
    pub enable_debug_during_sleep: bool,
 | 
					    pub enable_debug_during_sleep: bool,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// BDMA interrupt priority.
 | 
				
			||||||
 | 
					    ///
 | 
				
			||||||
 | 
					    /// Defaults to P0 (highest).
 | 
				
			||||||
    #[cfg(bdma)]
 | 
					    #[cfg(bdma)]
 | 
				
			||||||
    pub bdma_interrupt_priority: Priority,
 | 
					    pub bdma_interrupt_priority: Priority,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// DMA interrupt priority.
 | 
				
			||||||
 | 
					    ///
 | 
				
			||||||
 | 
					    /// Defaults to P0 (highest).
 | 
				
			||||||
    #[cfg(dma)]
 | 
					    #[cfg(dma)]
 | 
				
			||||||
    pub dma_interrupt_priority: Priority,
 | 
					    pub dma_interrupt_priority: Priority,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// GPDMA interrupt priority.
 | 
				
			||||||
 | 
					    ///
 | 
				
			||||||
 | 
					    /// Defaults to P0 (highest).
 | 
				
			||||||
    #[cfg(gpdma)]
 | 
					    #[cfg(gpdma)]
 | 
				
			||||||
    pub gpdma_interrupt_priority: Priority,
 | 
					    pub gpdma_interrupt_priority: Priority,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -178,7 +196,11 @@ impl Default for Config {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Initialize embassy.
 | 
					/// Initialize the `embassy-stm32` HAL with the provided configuration.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This returns the peripheral singletons that can be used for creating drivers.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// This should only be called once at startup, otherwise it panics.
 | 
				
			||||||
pub fn init(config: Config) -> Peripherals {
 | 
					pub fn init(config: Config) -> Peripherals {
 | 
				
			||||||
    critical_section::with(|cs| {
 | 
					    critical_section::with(|cs| {
 | 
				
			||||||
        let p = Peripherals::take_with_cs(cs);
 | 
					        let p = Peripherals::take_with_cs(cs);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					//! Quad Serial Peripheral Interface (QSPI)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub mod enums;
 | 
					pub mod enums;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Random Number Generator (RNG)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use core::future::poll_fn;
 | 
					use core::future::poll_fn;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
//! RTC peripheral abstraction
 | 
					//! Real Time Clock (RTC)
 | 
				
			||||||
mod datetime;
 | 
					mod datetime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg(feature = "low-power")]
 | 
					#[cfg(feature = "low-power")]
 | 
				
			||||||
@@ -163,7 +163,7 @@ impl RtcTimeProvider {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// RTC Abstraction
 | 
					/// RTC driver.
 | 
				
			||||||
pub struct Rtc {
 | 
					pub struct Rtc {
 | 
				
			||||||
    #[cfg(feature = "low-power")]
 | 
					    #[cfg(feature = "low-power")]
 | 
				
			||||||
    stop_time: Mutex<CriticalSectionRawMutex, Cell<Option<RtcInstant>>>,
 | 
					    stop_time: Mutex<CriticalSectionRawMutex, Cell<Option<RtcInstant>>>,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Secure Digital / MultiMedia Card (SDMMC)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use core::default::Default;
 | 
					use core::default::Default;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Serial Peripheral Interface (SPI)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use core::ptr;
 | 
					use core::ptr;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					//! Unique ID (UID)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Get this device's unique 96-bit ID.
 | 
					/// Get this device's unique 96-bit ID.
 | 
				
			||||||
pub fn uid() -> &'static [u8; 12] {
 | 
					pub fn uid() -> &'static [u8; 12] {
 | 
				
			||||||
    unsafe { &*crate::pac::UID.uid(0).as_ptr().cast::<[u8; 12]>() }
 | 
					    unsafe { &*crate::pac::UID.uid(0).as_ptr().cast::<[u8; 12]>() }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Universal Synchronous/Asynchronous Receiver Transmitter (USART, UART, LPUART)
 | 
				
			||||||
#![macro_use]
 | 
					#![macro_use]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use core::future::poll_fn;
 | 
					use core::future::poll_fn;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					//! USB On The Go (OTG)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::rcc::RccPeripheral;
 | 
					use crate::rcc::RccPeripheral;
 | 
				
			||||||
use crate::{interrupt, peripherals};
 | 
					use crate::{interrupt, peripherals};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					//! Watchdog Timer (IWDG, WWDG)
 | 
				
			||||||
use core::marker::PhantomData;
 | 
					use core::marker::PhantomData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use embassy_hal_internal::{into_ref, Peripheral};
 | 
					use embassy_hal_internal::{into_ref, Peripheral};
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user