#[repr(C)] #[derive(Debug)] ///Register block pub struct RegisterBlock { cr1: CR1, cr2: CR2, smcr: SMCR, dier: DIER, sr: SR, egr: EGR, _reserved_6_ccmr1: [u8; 0x04], _reserved_7_ccmr2: [u8; 0x04], ccer: CCER, cnt: CNT, psc: PSC, arr: ARR, _reserved12: [u8; 0x04], ccr: [CCR; 4], _reserved13: [u8; 0x04], dcr: DCR, dmar: DMAR, } impl RegisterBlock { ///0x00 - control register 1 #[inline(always)] pub const fn cr1(&self) -> &CR1 { &self.cr1 } ///0x04 - control register 2 #[inline(always)] pub const fn cr2(&self) -> &CR2 { &self.cr2 } ///0x08 - slave mode control register #[inline(always)] pub const fn smcr(&self) -> &SMCR { &self.smcr } ///0x0c - DMA/Interrupt enable register #[inline(always)] pub const fn dier(&self) -> &DIER { &self.dier } ///0x10 - status register #[inline(always)] pub const fn sr(&self) -> &SR { &self.sr } ///0x14 - event generation register #[inline(always)] pub const fn egr(&self) -> &EGR { &self.egr } ///0x18 - capture/compare mode register 1 (input mode) #[inline(always)] pub const fn ccmr1_input(&self) -> &CCMR1_INPUT { unsafe { &*core::ptr::from_ref(self).cast::().add(24).cast() } } ///0x18 - capture/compare mode register 1 (output mode) #[inline(always)] pub const fn ccmr1_output(&self) -> &CCMR1_OUTPUT { unsafe { &*core::ptr::from_ref(self).cast::().add(24).cast() } } ///0x1c - capture/compare mode register 2 (input mode) #[inline(always)] pub const fn ccmr2_input(&self) -> &CCMR2_INPUT { unsafe { &*core::ptr::from_ref(self).cast::().add(28).cast() } } ///0x1c - capture/compare mode register 2 (output mode) #[inline(always)] pub const fn ccmr2_output(&self) -> &CCMR2_OUTPUT { unsafe { &*core::ptr::from_ref(self).cast::().add(28).cast() } } ///0x20 - capture/compare enable register #[inline(always)] pub const fn ccer(&self) -> &CCER { &self.ccer } ///0x24 - counter #[inline(always)] pub const fn cnt(&self) -> &CNT { &self.cnt } ///0x28 - prescaler #[inline(always)] pub const fn psc(&self) -> &PSC { &self.psc } ///0x2c - auto-reload register #[inline(always)] pub const fn arr(&self) -> &ARR { &self.arr } ///0x34..0x44 - capture/compare register /// ///
`n` is the index of register in the array. `n == 0` corresponds to `CCR1` register.
#[inline(always)] pub const fn ccr(&self, n: usize) -> &CCR { &self.ccr[n] } ///Iterator for array of: ///0x34..0x44 - capture/compare register #[inline(always)] pub fn ccr_iter(&self) -> impl Iterator { self.ccr.iter() } ///0x34 - capture/compare register #[inline(always)] pub const fn ccr1(&self) -> &CCR { self.ccr(0) } ///0x38 - capture/compare register #[inline(always)] pub const fn ccr2(&self) -> &CCR { self.ccr(1) } ///0x3c - capture/compare register #[inline(always)] pub const fn ccr3(&self) -> &CCR { self.ccr(2) } ///0x40 - capture/compare register #[inline(always)] pub const fn ccr4(&self) -> &CCR { self.ccr(3) } ///0x48 - DMA control register #[inline(always)] pub const fn dcr(&self) -> &DCR { &self.dcr } ///0x4c - DMA address for full transfer #[inline(always)] pub const fn dmar(&self) -> &DMAR { &self.dmar } } /**CR1 (rw) register accessor: control register 1 You can [`read`](crate::Reg::read) this register and get [`cr1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cr1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CR1) For information about available fields see [`mod@cr1`] module*/ pub type CR1 = crate::Reg; ///control register 1 pub mod cr1; /**CR2 (rw) register accessor: control register 2 You can [`read`](crate::Reg::read) this register and get [`cr2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cr2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CR2) For information about available fields see [`mod@cr2`] module*/ pub type CR2 = crate::Reg; ///control register 2 pub mod cr2; /**SMCR (rw) register accessor: slave mode control register You can [`read`](crate::Reg::read) this register and get [`smcr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`smcr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:SMCR) For information about available fields see [`mod@smcr`] module*/ pub type SMCR = crate::Reg; ///slave mode control register pub mod smcr; /**DIER (rw) register accessor: DMA/Interrupt enable register You can [`read`](crate::Reg::read) this register and get [`dier::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dier::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:DIER) For information about available fields see [`mod@dier`] module*/ pub type DIER = crate::Reg; ///DMA/Interrupt enable register pub mod dier; /**SR (rw) register accessor: status register You can [`read`](crate::Reg::read) this register and get [`sr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:SR) For information about available fields see [`mod@sr`] module*/ pub type SR = crate::Reg; ///status register pub mod sr; /**EGR (w) register accessor: event generation register You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`egr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:EGR) For information about available fields see [`mod@egr`] module*/ pub type EGR = crate::Reg; ///event generation register pub mod egr; /**CCMR1_Output (rw) register accessor: capture/compare mode register 1 (output mode) You can [`read`](crate::Reg::read) this register and get [`ccmr1_output::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ccmr1_output::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CCMR1_Output) For information about available fields see [`mod@ccmr1_output`] module*/ #[doc(alias = "CCMR1_Output")] pub type CCMR1_OUTPUT = crate::Reg; ///capture/compare mode register 1 (output mode) pub mod ccmr1_output; /**CCMR1_Input (rw) register accessor: capture/compare mode register 1 (input mode) You can [`read`](crate::Reg::read) this register and get [`ccmr1_input::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ccmr1_input::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CCMR1_Input) For information about available fields see [`mod@ccmr1_input`] module*/ #[doc(alias = "CCMR1_Input")] pub type CCMR1_INPUT = crate::Reg; ///capture/compare mode register 1 (input mode) pub mod ccmr1_input; /**CCMR2_Output (rw) register accessor: capture/compare mode register 2 (output mode) You can [`read`](crate::Reg::read) this register and get [`ccmr2_output::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ccmr2_output::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CCMR2_Output) For information about available fields see [`mod@ccmr2_output`] module*/ #[doc(alias = "CCMR2_Output")] pub type CCMR2_OUTPUT = crate::Reg; ///capture/compare mode register 2 (output mode) pub mod ccmr2_output; /**CCMR2_Input (rw) register accessor: capture/compare mode register 2 (input mode) You can [`read`](crate::Reg::read) this register and get [`ccmr2_input::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ccmr2_input::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CCMR2_Input) For information about available fields see [`mod@ccmr2_input`] module*/ #[doc(alias = "CCMR2_Input")] pub type CCMR2_INPUT = crate::Reg; ///capture/compare mode register 2 (input mode) pub mod ccmr2_input; /**CCER (rw) register accessor: capture/compare enable register You can [`read`](crate::Reg::read) this register and get [`ccer::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ccer::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CCER) For information about available fields see [`mod@ccer`] module*/ pub type CCER = crate::Reg; ///capture/compare enable register pub mod ccer; /**CNT (rw) register accessor: counter You can [`read`](crate::Reg::read) this register and get [`cnt::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnt::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CNT) For information about available fields see [`mod@cnt`] module*/ pub type CNT = crate::Reg; ///counter pub mod cnt; /**PSC (rw) register accessor: prescaler You can [`read`](crate::Reg::read) this register and get [`psc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`psc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:PSC) For information about available fields see [`mod@psc`] module*/ pub type PSC = crate::Reg; ///prescaler pub mod psc; /**ARR (rw) register accessor: auto-reload register You can [`read`](crate::Reg::read) this register and get [`arr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`arr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:ARR) For information about available fields see [`mod@arr`] module*/ pub type ARR = crate::Reg; ///auto-reload register pub mod arr; /**CCR (rw) register accessor: capture/compare register You can [`read`](crate::Reg::read) this register and get [`ccr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ccr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:CCR[1]) For information about available fields see [`mod@ccr`] module*/ pub type CCR = crate::Reg; ///capture/compare register pub mod ccr; /**DCR (rw) register accessor: DMA control register You can [`read`](crate::Reg::read) this register and get [`dcr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dcr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:DCR) For information about available fields see [`mod@dcr`] module*/ pub type DCR = crate::Reg; ///DMA control register pub mod dcr; /**DMAR (rw) register accessor: DMA address for full transfer You can [`read`](crate::Reg::read) this register and get [`dmar::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmar::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api). See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#TIM2:DMAR) For information about available fields see [`mod@dmar`] module*/ pub type DMAR = crate::Reg; ///DMA address for full transfer pub mod dmar;