#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister, WORegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod MODER {
pub mod MODER15 {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Input: u32 = 0b00;
pub const Output: u32 = 0b01;
pub const Alternate: u32 = 0b10;
pub const Analog: u32 = 0b11;
}
}
pub mod MODER14 {
pub const offset: u32 = 28;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER13 {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER12 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER11 {
pub const offset: u32 = 22;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER10 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER9 {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER8 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER7 {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER6 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER5 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER4 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER3 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER2 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER1 {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
pub mod MODER0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::MODER15::RW;
}
}
pub mod OTYPER {
pub mod OT15 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PushPull: u32 = 0b0;
pub const OpenDrain: u32 = 0b1;
}
}
pub mod OT14 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
pub mod OT0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::OT15::RW;
}
}
pub mod OSPEEDR {
pub mod OSPEEDR15 {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LowSpeed: u32 = 0b00;
pub const MediumSpeed: u32 = 0b01;
pub const HighSpeed: u32 = 0b11;
}
}
pub mod OSPEEDR14 {
pub const offset: u32 = 28;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR13 {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR12 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR11 {
pub const offset: u32 = 22;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR10 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR9 {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR8 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR7 {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR6 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR5 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR4 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR3 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR2 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR1 {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
pub mod OSPEEDR0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::OSPEEDR15::RW;
}
}
pub mod PUPDR {
pub mod PUPDR15 {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Floating: u32 = 0b00;
pub const PullUp: u32 = 0b01;
pub const PullDown: u32 = 0b10;
}
}
pub mod PUPDR14 {
pub const offset: u32 = 28;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR13 {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR12 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR11 {
pub const offset: u32 = 22;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR10 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR9 {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR8 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR7 {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR6 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR5 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR4 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR3 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR2 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR1 {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
pub mod PUPDR0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub use super::PUPDR15::RW;
}
}
pub mod IDR {
pub mod IDR15 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const High: u32 = 0b1;
pub const Low: u32 = 0b0;
}
}
pub mod IDR14 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
pub mod IDR0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::IDR15::RW;
}
}
pub mod ODR {
pub mod ODR15 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const High: u32 = 0b1;
pub const Low: u32 = 0b0;
}
}
pub mod ODR14 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
pub mod ODR0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::ODR15::RW;
}
}
pub mod BSRR {
pub mod BR15 {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const Reset: u32 = 0b1;
}
pub mod RW {}
}
pub mod BR14 {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR13 {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR12 {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR11 {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR10 {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR9 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR8 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR7 {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR6 {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR5 {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR4 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR3 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR2 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR1 {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BR0 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR15::W;
pub mod RW {}
}
pub mod BS15 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const Set: u32 = 0b1;
}
pub mod RW {}
}
pub mod BS14 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
pub mod BS0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BS15::W;
pub mod RW {}
}
}
pub mod LCKR {
pub mod LCKK {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NotActive: u32 = 0b0;
pub const Active: u32 = 0b1;
}
}
pub mod LCK15 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Unlocked: u32 = 0b0;
pub const Locked: u32 = 0b1;
}
}
pub mod LCK14 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
pub mod LCK0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::LCK15::RW;
}
}
pub mod AFRL {
pub mod AFRL7 {
pub const offset: u32 = 28;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AF0: u32 = 0b0000;
pub const AF1: u32 = 0b0001;
pub const AF2: u32 = 0b0010;
pub const AF3: u32 = 0b0011;
pub const AF4: u32 = 0b0100;
pub const AF5: u32 = 0b0101;
pub const AF6: u32 = 0b0110;
pub const AF7: u32 = 0b0111;
pub const AF8: u32 = 0b1000;
pub const AF9: u32 = 0b1001;
pub const AF10: u32 = 0b1010;
pub const AF11: u32 = 0b1011;
pub const AF12: u32 = 0b1100;
pub const AF13: u32 = 0b1101;
pub const AF14: u32 = 0b1110;
pub const AF15: u32 = 0b1111;
}
}
pub mod AFRL6 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
pub mod AFRL5 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
pub mod AFRL4 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
pub mod AFRL3 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
pub mod AFRL2 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
pub mod AFRL1 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
pub mod AFRL0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRL7::RW;
}
}
pub mod AFRH {
pub mod AFRH15 {
pub const offset: u32 = 28;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AF0: u32 = 0b0000;
pub const AF1: u32 = 0b0001;
pub const AF2: u32 = 0b0010;
pub const AF3: u32 = 0b0011;
pub const AF4: u32 = 0b0100;
pub const AF5: u32 = 0b0101;
pub const AF6: u32 = 0b0110;
pub const AF7: u32 = 0b0111;
pub const AF8: u32 = 0b1000;
pub const AF9: u32 = 0b1001;
pub const AF10: u32 = 0b1010;
pub const AF11: u32 = 0b1011;
pub const AF12: u32 = 0b1100;
pub const AF13: u32 = 0b1101;
pub const AF14: u32 = 0b1110;
pub const AF15: u32 = 0b1111;
}
}
pub mod AFRH14 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
pub mod AFRH13 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
pub mod AFRH12 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
pub mod AFRH11 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
pub mod AFRH10 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
pub mod AFRH9 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
pub mod AFRH8 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub use super::AFRH15::RW;
}
}
pub mod BRR {
pub mod BR0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const NoAction: u32 = 0b0;
pub const Reset: u32 = 0b1;
}
pub mod RW {}
}
pub mod BR1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR14 {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
pub mod BR15 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub use super::BR0::W;
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub MODER: RWRegister<u32>,
pub OTYPER: RWRegister<u32>,
pub OSPEEDR: RWRegister<u32>,
pub PUPDR: RWRegister<u32>,
pub IDR: RORegister<u32>,
pub ODR: RWRegister<u32>,
pub BSRR: WORegister<u32>,
pub LCKR: RWRegister<u32>,
pub AFRL: RWRegister<u32>,
pub AFRH: RWRegister<u32>,
pub BRR: WORegister<u32>,
}
pub struct ResetValues {
pub MODER: u32,
pub OTYPER: u32,
pub OSPEEDR: u32,
pub PUPDR: u32,
pub IDR: u32,
pub ODR: u32,
pub BSRR: u32,
pub LCKR: u32,
pub AFRL: u32,
pub AFRH: u32,
pub BRR: 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 GPIOA {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48000000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0xA8000000,
OTYPER: 0x00000000,
OSPEEDR: 0x0C000000,
PUPDR: 0x64000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOA_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOA_TAKEN {
None
} else {
GPIOA_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOA_TAKEN && inst.addr == INSTANCE.addr {
GPIOA_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOA_TAKEN = true;
INSTANCE
}
}
pub const GPIOA: *const RegisterBlock = 0x48000000 as *const _;
pub mod GPIOB {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48000400,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000280,
OTYPER: 0x00000000,
OSPEEDR: 0x000000C0,
PUPDR: 0x00000100,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOB_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOB_TAKEN {
None
} else {
GPIOB_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOB_TAKEN && inst.addr == INSTANCE.addr {
GPIOB_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOB_TAKEN = true;
INSTANCE
}
}
pub const GPIOB: *const RegisterBlock = 0x48000400 as *const _;
pub mod GPIOC {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48000800,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000000,
OTYPER: 0x00000000,
OSPEEDR: 0x00000000,
PUPDR: 0x00000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOC_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOC_TAKEN {
None
} else {
GPIOC_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOC_TAKEN && inst.addr == INSTANCE.addr {
GPIOC_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOC_TAKEN = true;
INSTANCE
}
}
pub const GPIOC: *const RegisterBlock = 0x48000800 as *const _;
pub mod GPIOD {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48000c00,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000000,
OTYPER: 0x00000000,
OSPEEDR: 0x00000000,
PUPDR: 0x00000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOD_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOD_TAKEN {
None
} else {
GPIOD_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOD_TAKEN && inst.addr == INSTANCE.addr {
GPIOD_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOD_TAKEN = true;
INSTANCE
}
}
pub const GPIOD: *const RegisterBlock = 0x48000c00 as *const _;
pub mod GPIOE {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48001000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000000,
OTYPER: 0x00000000,
OSPEEDR: 0x00000000,
PUPDR: 0x00000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOE_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOE_TAKEN {
None
} else {
GPIOE_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOE_TAKEN && inst.addr == INSTANCE.addr {
GPIOE_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOE_TAKEN = true;
INSTANCE
}
}
pub const GPIOE: *const RegisterBlock = 0x48001000 as *const _;
pub mod GPIOF {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48001400,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000000,
OTYPER: 0x00000000,
OSPEEDR: 0x00000000,
PUPDR: 0x00000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOF_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOF_TAKEN {
None
} else {
GPIOF_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOF_TAKEN && inst.addr == INSTANCE.addr {
GPIOF_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOF_TAKEN = true;
INSTANCE
}
}
pub const GPIOF: *const RegisterBlock = 0x48001400 as *const _;
pub mod GPIOG {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48001800,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000000,
OTYPER: 0x00000000,
OSPEEDR: 0x00000000,
PUPDR: 0x00000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOG_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOG_TAKEN {
None
} else {
GPIOG_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOG_TAKEN && inst.addr == INSTANCE.addr {
GPIOG_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOG_TAKEN = true;
INSTANCE
}
}
pub const GPIOG: *const RegisterBlock = 0x48001800 as *const _;
pub mod GPIOH {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48001c00,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MODER: 0x00000000,
OTYPER: 0x00000000,
OSPEEDR: 0x00000000,
PUPDR: 0x00000000,
IDR: 0x00000000,
ODR: 0x00000000,
BSRR: 0x00000000,
LCKR: 0x00000000,
AFRL: 0x00000000,
AFRH: 0x00000000,
BRR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut GPIOH_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOH_TAKEN {
None
} else {
GPIOH_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if GPIOH_TAKEN && inst.addr == INSTANCE.addr {
GPIOH_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
GPIOH_TAKEN = true;
INSTANCE
}
}
pub const GPIOH: *const RegisterBlock = 0x48001c00 as *const _;