Skip to content

Releases: stm32-rs/bxcan

v0.8.0

17 Sep 01:51
638acda
Compare
Choose a tag to compare

0.8.0 - 2024-09-17

Fixes

  • Mask out all reserved bits in set_bit_timing before writing the register.

Other Changes

  • Update the embedded hal dependency to use the new embedded-can crate instead.

v0.7.0

30 May 11:38
Compare
Choose a tag to compare

New Features

  • [breaking change] Add support for using the second RX FIFO.
    • The Rx type has been renamed to Rx0, and an Rx1 type has been introduced that accesses the second FIFO.
    • enable_bank now takes the Fifo the filter should be assigned to as an additional argument.
  • Implement the embedded-hal 0.2.7 CAN traits.

Other Changes

  • [breaking change] Removed the embedded-can-03 feature as the embedded-can crate is deprecated.
  • [breaking change] Use a new OverrunError type as the receive error instead of ().

v0.6.2

30 May 11:38
Compare
Choose a tag to compare

Fixes

  • Enter initialization mode when constructing a CanBuilder (#49).

v0.6.1

30 May 11:37
Compare
Choose a tag to compare

New Features

  • Updated to defmt 0.3.0 (#47).

v0.6.0

05 Sep 20:49
Compare
Choose a tag to compare

New Features

  • Add CanConfig::set_automatic_retransmit function to enable or disable automatic frame retransmission (#42).
  • [breaking change] Remove transmit_and_get_mailbox in favor of an improved transmit method (#40).
    • Can::transmit now returns a TransmitStatus struct, which contains the dequeued frame and
      the mailbox the new frame was placed into.
  • [breaking change] Make CanConfig harder to misuse (#37):
    • Methods now take self by value.
    • The CanConfig struct is now #[must_use].
    • CanConfig leaves init mode on drop, and enables the peripheral when .enable() is called.
    • These changes make it very hard to forget to enable the peripheral after configuring, which was
      a common mistake in previous versions.
  • [breaking change] Replace Can::new with Can::builder, which makes it harder to forget enabling the peripheral (#46).

Other Changes

  • [breaking change] Make Can::clear_sleep_interrupt and Can::clear_wakeup_interrupt take &self instead of &mut self.
  • [breaking change] Gate embedded_can impls behind the embedded-can-03 Cargo feature.
  • [breaking change] Gate defmt support behind the defmt Cargo feature.
  • [breaking change] Removed Can::configure in favor of Can::modify_config (#36).

v0.5.1

15 May 21:46
Compare
Choose a tag to compare

New Features

  • Add transmit function that returns the mailbox number, and transmit abort function (#25).
  • Add more methods to acknowledge interrupts (#30).
  • Add Can::free, a way to get back ownership of the raw peripheral (#33).

Fixes

  • The Can::enable_interrupt and Can::disable_interrupt functions now manipulate the correct bits in the interrupt
    enable register (#29).

Misc

  • Improve documentation of interrupts (#30).

v0.5.0

15 May 21:07
Compare
Choose a tag to compare

Breaking Changes

  • Update to defmt 0.2.0 (#17).

v0.4.0

23 Jan 18:38
Compare
Choose a tag to compare

Breaking Changes

  • Revamp filter and configuration API to allow method chaining (#10 #12).

Bugfixes

  • Wait for SLAK and INAK bits when changing mode (#8).

Misc

  • Clarify comments for the transmit() method (#9).

v0.3.0

28 Dec 14:14
Compare
Choose a tag to compare

New Features

  • Configurable mask for masked filters.
  • Implement the embedded-can traits.

Breaking Changes

  • Changes to masked filters required some breaking API changes.

v0.2.3

28 Dec 14:15
Compare
Choose a tag to compare

Fixes

  • Fix a panic when aborting transmission of a lower-priority frame.
  • Fix comparison when checking for a lower-priority mailbox.