#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
cr1: CR1,
cr2: CR2,
oar1: OAR1,
oar2: OAR2,
timingr: TIMINGR,
timeoutr: TIMEOUTR,
isr: ISR,
icr: ICR,
pecr: PECR,
rxdr: RXDR,
txdr: TXDR,
}
impl RegisterBlock {
#[doc = "0x00 - I2C control register 1"]
#[inline(always)]
pub const fn cr1(&self) -> &CR1 {
&self.cr1
}
#[doc = "0x04 - I2C control register 2"]
#[inline(always)]
pub const fn cr2(&self) -> &CR2 {
&self.cr2
}
#[doc = "0x08 - I2C own address 1 register"]
#[inline(always)]
pub const fn oar1(&self) -> &OAR1 {
&self.oar1
}
#[doc = "0x0c - I2C own address 2 register"]
#[inline(always)]
pub const fn oar2(&self) -> &OAR2 {
&self.oar2
}
#[doc = "0x10 - I2C timing register"]
#[inline(always)]
pub const fn timingr(&self) -> &TIMINGR {
&self.timingr
}
#[doc = "0x14 - I2C timeout register"]
#[inline(always)]
pub const fn timeoutr(&self) -> &TIMEOUTR {
&self.timeoutr
}
#[doc = "0x18 - I2C interrupt and status register"]
#[inline(always)]
pub const fn isr(&self) -> &ISR {
&self.isr
}
#[doc = "0x1c - I2C interrupt clear register"]
#[inline(always)]
pub const fn icr(&self) -> &ICR {
&self.icr
}
#[doc = "0x20 - I2C PEC register"]
#[inline(always)]
pub const fn pecr(&self) -> &PECR {
&self.pecr
}
#[doc = "0x24 - I2C receive data register"]
#[inline(always)]
pub const fn rxdr(&self) -> &RXDR {
&self.rxdr
}
#[doc = "0x28 - I2C transmit data register"]
#[inline(always)]
pub const fn txdr(&self) -> &TXDR {
&self.txdr
}
}
#[doc = "CR1 (rw) register accessor: I2C control register 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cr1::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`cr1::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cr1`]
module"]
pub type CR1 = crate::Reg<cr1::CR1rs>;
#[doc = "I2C control register 1"]
pub mod cr1;
#[doc = "CR2 (rw) register accessor: I2C control register 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cr2::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`cr2::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cr2`]
module"]
pub type CR2 = crate::Reg<cr2::CR2rs>;
#[doc = "I2C control register 2"]
pub mod cr2;
#[doc = "OAR1 (rw) register accessor: I2C own address 1 register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`oar1::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`oar1::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@oar1`]
module"]
pub type OAR1 = crate::Reg<oar1::OAR1rs>;
#[doc = "I2C own address 1 register"]
pub mod oar1;
#[doc = "OAR2 (rw) register accessor: I2C own address 2 register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`oar2::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`oar2::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@oar2`]
module"]
pub type OAR2 = crate::Reg<oar2::OAR2rs>;
#[doc = "I2C own address 2 register"]
pub mod oar2;
#[doc = "TIMINGR (rw) register accessor: I2C timing register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`timingr::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`timingr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@timingr`]
module"]
pub type TIMINGR = crate::Reg<timingr::TIMINGRrs>;
#[doc = "I2C timing register"]
pub mod timingr;
#[doc = "TIMEOUTR (rw) register accessor: I2C timeout register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`timeoutr::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`timeoutr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@timeoutr`]
module"]
pub type TIMEOUTR = crate::Reg<timeoutr::TIMEOUTRrs>;
#[doc = "I2C timeout register"]
pub mod timeoutr;
#[doc = "ISR (rw) register accessor: I2C interrupt and status register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`isr::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`isr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@isr`]
module"]
pub type ISR = crate::Reg<isr::ISRrs>;
#[doc = "I2C interrupt and status register"]
pub mod isr;
#[doc = "ICR (w) register accessor: I2C interrupt clear register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`icr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@icr`]
module"]
pub type ICR = crate::Reg<icr::ICRrs>;
#[doc = "I2C interrupt clear register"]
pub mod icr;
#[doc = "PECR (r) register accessor: I2C PEC register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`pecr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pecr`]
module"]
pub type PECR = crate::Reg<pecr::PECRrs>;
#[doc = "I2C PEC register"]
pub mod pecr;
#[doc = "RXDR (r) register accessor: I2C receive data register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rxdr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rxdr`]
module"]
pub type RXDR = crate::Reg<rxdr::RXDRrs>;
#[doc = "I2C receive data register"]
pub mod rxdr;
#[doc = "TXDR (rw) register accessor: I2C transmit data register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`txdr::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`txdr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@txdr`]
module"]
pub type TXDR = crate::Reg<txdr::TXDRrs>;
#[doc = "I2C transmit data register"]
pub mod txdr;