#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::RWRegister;
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod CR {
pub mod HSION {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Off: u32 = 0b0;
pub const On: u32 = 0b1;
}
}
pub mod HSIRDY {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotReady: u32 = 0b0;
pub const Ready: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod HSITRIM {
pub const offset: u32 = 3;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HSICAL {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HSEON {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HSION::RW;
}
pub mod HSERDY {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub use super::HSIRDY::R;
pub mod W {}
pub mod RW {}
}
pub mod HSEBYP {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NotBypassed: u32 = 0b0;
pub const Bypassed: u32 = 0b1;
}
}
pub mod CSSON {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Off: u32 = 0b0;
pub const On: u32 = 0b1;
}
}
pub mod PLLON {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::HSION::RW;
}
pub mod PLLRDY {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub use super::HSIRDY::R;
pub mod W {}
pub mod RW {}
}
}
pub mod CFGR {
pub mod SW {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HSI: u32 = 0b00;
pub const HSE: u32 = 0b01;
pub const PLL: u32 = 0b10;
}
}
pub mod SWS {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {
pub const HSI: u32 = 0b00;
pub const HSE: u32 = 0b01;
pub const PLL: u32 = 0b10;
}
pub mod W {}
pub mod RW {}
}
pub mod HPRE {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Div1: u32 = 0b0000;
pub const Div2: u32 = 0b1000;
pub const Div4: u32 = 0b1001;
pub const Div8: u32 = 0b1010;
pub const Div16: u32 = 0b1011;
pub const Div64: u32 = 0b1100;
pub const Div128: u32 = 0b1101;
pub const Div256: u32 = 0b1110;
pub const Div512: u32 = 0b1111;
}
}
pub mod PPRE1 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Div1: u32 = 0b000;
pub const Div2: u32 = 0b100;
pub const Div4: u32 = 0b101;
pub const Div8: u32 = 0b110;
pub const Div16: u32 = 0b111;
}
}
pub mod PPRE2 {
pub const offset: u32 = 11;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::PPRE1::RW;
}
pub mod PLLSRC {
pub const offset: u32 = 15;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HSI_Div2: u32 = 0b00;
pub const HSI_Div_PREDIV: u32 = 0b01;
pub const HSE_Div_PREDIV: u32 = 0b10;
}
}
pub mod PLLXTPRE {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Div1: u32 = 0b0;
pub const Div2: u32 = 0b1;
}
}
pub mod PLLMUL {
pub const offset: u32 = 18;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Mul2: u32 = 0b0000;
pub const Mul3: u32 = 0b0001;
pub const Mul4: u32 = 0b0010;
pub const Mul5: u32 = 0b0011;
pub const Mul6: u32 = 0b0100;
pub const Mul7: u32 = 0b0101;
pub const Mul8: u32 = 0b0110;
pub const Mul9: u32 = 0b0111;
pub const Mul10: u32 = 0b1000;
pub const Mul11: u32 = 0b1001;
pub const Mul12: u32 = 0b1010;
pub const Mul13: u32 = 0b1011;
pub const Mul14: u32 = 0b1100;
pub const Mul15: u32 = 0b1101;
pub const Mul16: u32 = 0b1110;
pub const Mul16x: u32 = 0b1111;
}
}
pub mod USBPRE {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DIV1_5: u32 = 0b0;
pub const DIV1: u32 = 0b1;
}
}
pub mod MCO {
pub const offset: u32 = 24;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NoMCO: u32 = 0b000;
pub const LSI: u32 = 0b010;
pub const LSE: u32 = 0b011;
pub const SYSCLK: u32 = 0b100;
pub const HSI: u32 = 0b101;
pub const HSE: u32 = 0b110;
pub const PLL: u32 = 0b111;
}
}
pub mod I2SSRC {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SYSCLK: u32 = 0b0;
pub const CKIN: u32 = 0b1;
}
}
pub mod MCOPRE {
pub const offset: u32 = 28;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Div1: u32 = 0b000;
pub const Div2: u32 = 0b001;
pub const Div4: u32 = 0b010;
pub const Div8: u32 = 0b011;
pub const Div16: u32 = 0b100;
pub const Div32: u32 = 0b101;
pub const Div64: u32 = 0b110;
pub const Div128: u32 = 0b111;
}
}
pub mod PLLNODIV {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Div2: u32 = 0b0;
pub const Div1: u32 = 0b1;
}
}
}
pub mod CIR {
pub mod LSIRDYF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotInterrupted: u32 = 0b0;
pub const Interrupted: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod LSERDYF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub use super::LSIRDYF::R;
pub mod W {}
pub mod RW {}
}
pub mod HSIRDYF {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub use super::LSIRDYF::R;
pub mod W {}
pub mod RW {}
}
pub mod HSERDYF {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub use super::LSIRDYF::R;
pub mod W {}
pub mod RW {}
}
pub mod PLLRDYF {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub use super::LSIRDYF::R;
pub mod W {}
pub mod RW {}
}
pub mod CSSF {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotInterrupted: u32 = 0b0;
pub const Interrupted: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod LSIRDYIE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod LSERDYIE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LSIRDYIE::RW;
}
pub mod HSIRDYIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LSIRDYIE::RW;
}
pub mod HSERDYIE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LSIRDYIE::RW;
}
pub mod PLLRDYIE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LSIRDYIE::RW;
}
pub mod LSIRDYC {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const Clear: u32 = 0b1;
}
pub mod RW {}
}
pub mod LSERDYC {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::LSIRDYC::W;
pub mod RW {}
}
pub mod HSIRDYC {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::LSIRDYC::W;
pub mod RW {}
}
pub mod HSERDYC {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::LSIRDYC::W;
pub mod RW {}
}
pub mod PLLRDYC {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::LSIRDYC::W;
pub mod RW {}
}
pub mod CSSC {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const Clear: u32 = 0b1;
}
pub mod RW {}
}
}
pub mod APB2RSTR {
pub mod SYSCFGRST {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Reset: u32 = 0b1;
}
}
pub mod SPI1RST {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod USART1RST {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod TIM15RST {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod TIM16RST {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod TIM17RST {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod TIM1RST {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod TIM8RST {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod SPI4RST {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
pub mod TIM20RST {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGRST::RW;
}
}
pub mod APB1RSTR {
pub mod TIM2RST {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Reset: u32 = 0b1;
}
}
pub mod TIM3RST {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod TIM4RST {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod TIM6RST {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod TIM7RST {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod WWDGRST {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod SPI2RST {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod SPI3RST {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod USART2RST {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod USART3RST {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod I2C1RST {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod I2C2RST {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod USBRST {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod CANRST {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod DAC2RST {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod PWRRST {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod DAC1RST {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod UART4RST {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod UART5RST {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
pub mod I2C3RST {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2RST::RW;
}
}
pub mod AHBENR {
pub mod DMA1EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod DMA2EN {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod SRAMEN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod FLITFEN {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod CRCEN {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPAEN {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPBEN {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPCEN {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPDEN {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPEEN {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPFEN {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod TSCEN {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPHEN {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod IOPGEN {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod ADC12EN {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
pub mod ADC34EN {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::DMA1EN::RW;
}
}
pub mod APB2ENR {
pub mod SYSCFGEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod TIM1EN {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod SPI1EN {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod USART1EN {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod TIM15EN {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod TIM16EN {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod TIM17EN {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod TIM8EN {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod SPI4EN {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
pub mod TIM20EN {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::SYSCFGEN::RW;
}
}
pub mod APB1ENR {
pub mod TIM2EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod TIM3EN {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod TIM4EN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod TIM6EN {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod TIM7EN {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod WWDGEN {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod SPI2EN {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod SPI3EN {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod USART2EN {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod USART3EN {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod I2C1EN {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod I2C2EN {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod USBEN {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod CANEN {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod DAC2EN {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod PWREN {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod DAC1EN {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod UART4EN {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod UART5EN {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
pub mod I2C3EN {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM2EN::RW;
}
}
pub mod BDCR {
pub mod LSEON {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Off: u32 = 0b0;
pub const On: u32 = 0b1;
}
}
pub mod LSERDY {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotReady: u32 = 0b0;
pub const Ready: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod LSEBYP {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NotBypassed: u32 = 0b0;
pub const Bypassed: u32 = 0b1;
}
}
pub mod LSEDRV {
pub const offset: u32 = 3;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Low: u32 = 0b00;
pub const MediumHigh: u32 = 0b01;
pub const MediumLow: u32 = 0b10;
pub const High: u32 = 0b11;
}
}
pub mod RTCSEL {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NoClock: u32 = 0b00;
pub const LSE: u32 = 0b01;
pub const LSI: u32 = 0b10;
pub const HSE: u32 = 0b11;
}
}
pub mod RTCEN {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod BDRST {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
}
pub mod CSR {
pub mod LSION {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Off: u32 = 0b0;
pub const On: u32 = 0b1;
}
}
pub mod LSIRDY {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotReady: u32 = 0b0;
pub const Ready: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod RMVF {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const Clear: u32 = 0b1;
}
pub mod RW {}
}
pub mod OBLRSTF {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NoReset: u32 = 0b0;
pub const Reset: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod PINRSTF {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
pub mod PORRSTF {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
pub mod SFTRSTF {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
pub mod IWDGRSTF {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
pub mod WWDGRSTF {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
pub mod LPWRRSTF {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
pub mod V18PWRRSTF {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub use super::OBLRSTF::R;
pub mod W {}
pub mod RW {}
}
}
pub mod AHBRSTR {
pub mod IOPARST {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Reset: u32 = 0b1;
}
}
pub mod IOPBRST {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod IOPCRST {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod IOPDRST {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod IOPERST {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod IOPFRST {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod TSCRST {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod IOPHRST {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod IOPGRST {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod ADC12RST {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
pub mod ADC34RST {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IOPARST::RW;
}
}
pub mod CFGR2 {
pub mod PREDIV {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Div1: u32 = 0b0000;
pub const Div2: u32 = 0b0001;
pub const Div3: u32 = 0b0010;
pub const Div4: u32 = 0b0011;
pub const Div5: u32 = 0b0100;
pub const Div6: u32 = 0b0101;
pub const Div7: u32 = 0b0110;
pub const Div8: u32 = 0b0111;
pub const Div9: u32 = 0b1000;
pub const Div10: u32 = 0b1001;
pub const Div11: u32 = 0b1010;
pub const Div12: u32 = 0b1011;
pub const Div13: u32 = 0b1100;
pub const Div14: u32 = 0b1101;
pub const Div15: u32 = 0b1110;
pub const Div16: u32 = 0b1111;
}
}
pub mod ADC12PRES {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NoClock: u32 = 0b00000;
pub const Div1: u32 = 0b10000;
pub const Div2: u32 = 0b10001;
pub const Div4: u32 = 0b10010;
pub const Div6: u32 = 0b10011;
pub const Div8: u32 = 0b10100;
pub const Div10: u32 = 0b10101;
pub const Div12: u32 = 0b10110;
pub const Div16: u32 = 0b10111;
pub const Div32: u32 = 0b11000;
pub const Div64: u32 = 0b11001;
pub const Div128: u32 = 0b11010;
pub const Div256: u32 = 0b11011;
}
}
pub mod ADC34PRES {
pub const offset: u32 = 9;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub use super::ADC12PRES::RW;
}
}
pub mod CFGR3 {
pub mod USART1SW {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PCLK: u32 = 0b00;
pub const SYSCLK: u32 = 0b01;
pub const LSE: u32 = 0b10;
pub const HSI: u32 = 0b11;
}
}
pub mod I2C1SW {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HSI: u32 = 0b0;
pub const SYSCLK: u32 = 0b1;
}
}
pub mod I2C2SW {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::I2C1SW::RW;
}
pub mod USART2SW {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::USART1SW::RW;
}
pub mod USART3SW {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::USART1SW::RW;
}
pub mod TIM1SW {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PCLK2: u32 = 0b0;
pub const PLL: u32 = 0b1;
}
}
pub mod TIM8SW {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
pub mod UART4SW {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::USART1SW::RW;
}
pub mod UART5SW {
pub const offset: u32 = 22;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::USART1SW::RW;
}
pub mod I2C3SW {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::I2C1SW::RW;
}
pub mod TIM20SW {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
pub mod TIM15SW {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
pub mod TIM16SW {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
pub mod TIM17SW {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
pub mod TIM2SW {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
pub mod TIM34SW {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::TIM1SW::RW;
}
}
#[repr(C)]
pub struct RegisterBlock {
pub CR: RWRegister<u32>,
pub CFGR: RWRegister<u32>,
pub CIR: RWRegister<u32>,
pub APB2RSTR: RWRegister<u32>,
pub APB1RSTR: RWRegister<u32>,
pub AHBENR: RWRegister<u32>,
pub APB2ENR: RWRegister<u32>,
pub APB1ENR: RWRegister<u32>,
pub BDCR: RWRegister<u32>,
pub CSR: RWRegister<u32>,
pub AHBRSTR: RWRegister<u32>,
pub CFGR2: RWRegister<u32>,
pub CFGR3: RWRegister<u32>,
}
pub struct ResetValues {
pub CR: u32,
pub CFGR: u32,
pub CIR: u32,
pub APB2RSTR: u32,
pub APB1RSTR: u32,
pub AHBENR: u32,
pub APB2ENR: u32,
pub APB1ENR: u32,
pub BDCR: u32,
pub CSR: u32,
pub AHBRSTR: u32,
pub CFGR2: u32,
pub CFGR3: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtic")]
unsafe impl Send for Instance {}
pub mod RCC {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40021000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
CR: 0x00000083,
CFGR: 0x00000000,
CIR: 0x00000000,
APB2RSTR: 0x00000000,
APB1RSTR: 0x00000000,
AHBENR: 0x00000014,
APB2ENR: 0x00000000,
APB1ENR: 0x00000000,
BDCR: 0x00000000,
CSR: 0x0C000000,
AHBRSTR: 0x00000000,
CFGR2: 0x00000000,
CFGR3: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut RCC_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if RCC_TAKEN {
None
} else {
RCC_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if RCC_TAKEN && inst.addr == INSTANCE.addr {
RCC_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
RCC_TAKEN = true;
INSTANCE
}
}
pub const RCC: *const RegisterBlock = 0x40021000 as *const _;