Struct CAN2

Source
pub struct CAN2 { /* private fields */ }
Expand description

Controller area network

See peripheral structure

Implementations§

Source§

impl CAN2

Source

pub const PTR: *const RegisterBlock = {0x40006800 as *const stm32f4_staging::stm32f429::can1::RegisterBlock}

Pointer to the register block

Source

pub const fn ptr() -> *const RegisterBlock

Return the pointer to the register block

Source

pub unsafe fn steal() -> CAN2

Steal an instance of this peripheral

§Safety

Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.

Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.

Methods from Deref<Target = RegisterBlock>§

Source

pub fn mcr(&self) -> &Reg<MCRrs>

0x00 - master control register

Source

pub fn msr(&self) -> &Reg<MSRrs>

0x04 - master status register

Source

pub fn tsr(&self) -> &Reg<TSRrs>

0x08 - transmit status register

Source

pub fn rfr(&self, n: usize) -> &Reg<RFRrs>

0x0c..0x14 - receive FIFO %s register

Source

pub fn rfr_iter(&self) -> impl Iterator<Item = &Reg<RFRrs>>

Iterator for array of: 0x0c..0x14 - receive FIFO %s register

Source

pub fn rf0r(&self) -> &Reg<RFRrs>

0x0c - receive FIFO 0 register

Source

pub fn rf1r(&self) -> &Reg<RFRrs>

0x10 - receive FIFO 1 register

Source

pub fn ier(&self) -> &Reg<IERrs>

0x14 - interrupt enable register

Source

pub fn esr(&self) -> &Reg<ESRrs>

0x18 - interrupt enable register

Source

pub fn btr(&self) -> &Reg<BTRrs>

0x1c - bit timing register

Source

pub fn tx(&self, n: usize) -> &TX

0x180..0x1b0 - CAN Transmit cluster

Source

pub fn tx_iter(&self) -> impl Iterator<Item = &TX>

Iterator for array of: 0x180..0x1b0 - CAN Transmit cluster

Source

pub fn rx(&self, n: usize) -> &RX

0x1b0..0x1d0 - CAN Receive cluster

Source

pub fn rx_iter(&self) -> impl Iterator<Item = &RX>

Iterator for array of: 0x1b0..0x1d0 - CAN Receive cluster

Source

pub fn fmr(&self) -> &Reg<FMRrs>

0x200 - filter master register

Source

pub fn fm1r(&self) -> &Reg<FM1Rrs>

0x204 - filter mode register

Source

pub fn fs1r(&self) -> &Reg<FS1Rrs>

0x20c - filter scale register

Source

pub fn ffa1r(&self) -> &Reg<FFA1Rrs>

0x214 - filter FIFO assignment register

Source

pub fn fa1r(&self) -> &Reg<FA1Rrs>

0x21c - filter activation register

Source

pub fn fb(&self, n: usize) -> &FB

0x240..0x320 - CAN Filter Bank cluster

Source

pub fn fb_iter(&self) -> impl Iterator<Item = &FB>

Iterator for array of: 0x240..0x320 - CAN Filter Bank cluster

Trait Implementations§

Source§

impl CanCommon for CAN2

Source§

type Rx = Rx

Source§

type Tx = Tx

Source§

impl Debug for CAN2

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Deref for CAN2

Source§

type Target = RegisterBlock

The resulting type after dereferencing.
Source§

fn deref(&self) -> &<CAN2 as Deref>::Target

Dereferences the value.
Source§

impl Enable for CAN2

Source§

fn enable(rcc: &RccRB)

Enables peripheral
Source§

fn disable(rcc: &RccRB)

Disables peripheral
Source§

fn is_enabled() -> bool

Check if peripheral enabled
Source§

fn is_disabled() -> bool

Check if peripheral disabled
Source§

unsafe fn enable_unchecked()

Safety Read more
Source§

unsafe fn disable_unchecked()

Safety Read more
Source§

impl LPEnable for CAN2

Source§

fn enable_in_low_power(rcc: &RccRB)

Enables peripheral in low power mode
Source§

fn disable_in_low_power(rcc: &RccRB)

Disables peripheral in low power mode
Source§

fn is_enabled_in_low_power() -> bool

Check if peripheral enabled in low power mode
Source§

fn is_disabled_in_low_power() -> bool

Check if peripheral disabled in low power mode
Source§

unsafe fn enable_in_low_power_unchecked()

Safety Read more
Source§

unsafe fn disable_in_low_power_unchecked()

Safety Read more
Source§

impl RccBus for CAN2

Source§

type Bus = APB1

Bus type;
Source§

impl Reset for CAN2

Source§

fn reset(rcc: &RccRB)

Resets peripheral
Source§

unsafe fn reset_unchecked()

Safety Read more
Source§

impl Instance for CAN2

Source§

impl Send for CAN2

Auto Trait Implementations§

§

impl Freeze for CAN2

§

impl RefUnwindSafe for CAN2

§

impl !Sync for CAN2

§

impl Unpin for CAN2

§

impl UnwindSafe for CAN2

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> BusClock for T
where T: RccBus, <T as RccBus>::Bus: BusClock,

Source§

fn clock(clocks: &Clocks) -> Rate<u32, 1, 1>

Calculates frequency depending on Clock state
Source§

impl<T> BusTimerClock for T
where T: RccBus, <T as RccBus>::Bus: BusTimerClock,

Source§

fn timer_clock(clocks: &Clocks) -> Rate<u32, 1, 1>

Calculates base frequency of timer depending on Clock state
Source§

impl<CAN> CanExt for CAN
where CAN: Instance,

Source§

fn can( self, pins: (impl Into<<CAN as CanCommon>::Tx>, impl Into<<CAN as CanCommon>::Rx>), ) -> Can<CAN>

Source§

fn tx(self, tx_pin: impl Into<<CAN as CanCommon>::Tx>) -> Can<CAN>
where NoPin: Into<<CAN as CanCommon>::Rx>,

Source§

fn rx(self, rx_pin: impl Into<<CAN as CanCommon>::Rx>) -> Can<CAN>
where NoPin: Into<<CAN as CanCommon>::Tx>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> I2sFreq for T
where T: RccBus, <T as RccBus>::Bus: I2sFreq,

Source§

fn try_i2s_freq(clocks: &Clocks) -> Option<Rate<u32, 1, 1>>

Source§

fn i2s_freq(clocks: &Clocks) -> Hertz

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.