1#![no_std]
2
3extern crate alloc;
4
5pub mod afio;
6pub mod backup_domain;
7pub mod bb;
8pub mod common;
9pub mod flash;
10pub mod gpio;
11pub mod interrupt;
12pub mod nvic_scb;
13pub mod os;
14pub mod prelude;
15pub mod rcc;
16pub mod time;
17pub mod timer;
18pub mod uart;
19
20pub use common::ringbuf;
21pub use common::simplest_heap::Heap;
22pub use cortex_m;
23pub use cortex_m_rt;
24pub use embedded_hal;
25pub use embedded_io;
26pub use nb;
27#[cfg(feature = "stm32f100")]
28pub use stm32f1::stm32f100 as pac;
29#[cfg(feature = "stm32f101")]
30pub use stm32f1::stm32f101 as pac;
31#[cfg(feature = "stm32f103")]
32pub use stm32f1::stm32f103 as pac;
33#[cfg(any(feature = "stm32f105", feature = "stm32f107"))]
34pub use stm32f1::stm32f107 as pac;
35
36pub trait Steal {
37 unsafe fn steal(&self) -> Self;
51}
52
53impl<RB, const A: usize> Steal for stm32f1::Periph<RB, A> {
54 unsafe fn steal(&self) -> Self {
55 unsafe { Self::steal() }
56 }
57}
58
59pub struct Mcu {
60 pub scb: nvic_scb::Scb,
64 pub nvic: nvic_scb::Nvic,
65 pub rcc: rcc::Rcc,
66 pub afio: afio::Afio,
67}