12 releases (6 breaking)

0.7.0 May 30, 2022
0.6.2 Nov 15, 2021
0.6.0 Sep 5, 2021
0.5.1 May 15, 2021
0.3.0 Dec 28, 2020

#1830 in Embedded development

Download history 2245/week @ 2024-01-12 1780/week @ 2024-01-19 2265/week @ 2024-01-26 1292/week @ 2024-02-02 1450/week @ 2024-02-09 1540/week @ 2024-02-16 1482/week @ 2024-02-23 1404/week @ 2024-03-01 1828/week @ 2024-03-08 1529/week @ 2024-03-15 1725/week @ 2024-03-22 1530/week @ 2024-03-29 1356/week @ 2024-04-05 1576/week @ 2024-04-12 1517/week @ 2024-04-19 1078/week @ 2024-04-26

5,749 downloads per month
Used in 48 crates (18 directly)

MIT/Apache

270KB
8K SLoC

bxCAN peripheral driver

crates.io docs.rs CI

This crate implements a driver for the bxCAN peripheral found in many low- to middle-end STM32 microcontrollers.

Please refer to the changelog to see what changed in the last releases.

Usage

Add an entry to your Cargo.toml:

[dependencies]
bxcan = "0.7.0"

Check the API Documentation for how to use the crate's functionality.

Rust version support

This crate supports at least the 3 latest stable Rust releases. Bumping the minimum supported Rust version (MSRV) is not considered a breaking change as long as these 3 versions are still supported.


lib.rs:

Driver for the STM32 bxCAN peripheral.

This crate provides a reusable driver for the bxCAN peripheral found in many low- to middle-end STM32 microcontrollers. HALs for compatible chips can reexport this crate and implement its traits to easily expose a featureful CAN driver.

Features

  • Supports both single- and dual-peripheral configurations (where one bxCAN instance manages the filters of a secondary instance).
  • Handles standard and extended frames, and data and remote frames.
  • Support for interrupts emitted by the bxCAN peripheral.
  • Transmission respects CAN IDs and protects against priority inversion (a lower-priority frame may be dequeued when enqueueing a higher-priority one).
  • Implements the embedded-hal traits for interoperability.
  • Support for both RX FIFOs (as [Rx0] and [Rx1]).

Limitations

  • Support for querying error states and handling error interrupts is incomplete.

Cargo Features

Feature Description
unstable-defmt Implements defmt's Format trait for the types in this crate.[^1]

[^1]: The specific version of defmt is unspecified and may be updated in a patch release.

Dependencies

~145–325KB