Struct bxcan::CanBuilder

source ·
pub struct CanBuilder<I: Instance> { /* private fields */ }
Expand description

Builder returned by Can::builder.

Implementations§

source§

impl<I: Instance> CanBuilder<I>

source

pub fn set_bit_timing(self, btr: u32) -> Self

Configures the bit timings.

You can use http://www.bittiming.can-wiki.info/ to calculate the btr parameter. Enter parameters as follows:

  • Clock Rate: The input clock speed to the CAN peripheral (not the CPU clock speed). This is the clock rate of the peripheral bus the CAN peripheral is attached to (eg. APB1).
  • Sample Point: Should normally be left at the default value of 87.5%.
  • SJW: Should normally be left at the default value of 1.

Then copy the CAN_BUS_TIME register value from the table and pass it as the btr parameter to this method.

source

pub fn set_loopback(self, enabled: bool) -> Self

Enables or disables loopback mode: Internally connects the TX and RX signals together.

source

pub fn set_silent(self, enabled: bool) -> Self

Enables or disables silent mode: Disconnects the TX signal from the pin.

source

pub fn set_automatic_retransmit(self, enabled: bool) -> Self

Enables or disables automatic retransmission of messages.

If this is enabled, the CAN peripheral will automatically try to retransmit each frame until it can be sent. Otherwise, it will try only once to send each frame.

Automatic retransmission is enabled by default.

source

pub fn enable(self) -> Can<I>

Leaves initialization mode and enables the peripheral.

To sync with the CAN bus, this will block until 11 consecutive recessive bits are detected on the bus.

If you want to finish configuration without enabling the peripheral, you can call CanBuilder::leave_disabled instead.

source

pub fn leave_disabled(self) -> Can<I>

Returns the Can interface without enabling it.

This leaves initialization mode, but keeps the peripheral in sleep mode instead of enabling it.

Before the Can instance can be used, you have to enable it by calling Can::enable_non_blocking.

Auto Trait Implementations§

§

impl<I> Freeze for CanBuilder<I>
where I: Freeze,

§

impl<I> RefUnwindSafe for CanBuilder<I>
where I: RefUnwindSafe,

§

impl<I> Send for CanBuilder<I>
where I: Send,

§

impl<I> Sync for CanBuilder<I>
where I: Sync,

§

impl<I> Unpin for CanBuilder<I>
where I: Unpin,

§

impl<I> UnwindSafe for CanBuilder<I>
where I: UnwindSafe,

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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<T, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.