Skip to content

Releases: rust-embedded/embedded-hal

Release 1.0.0-alpha.6

19 Nov 13:28
58777c2
Compare
Choose a tag to compare

*** This is (also) an alpha release with breaking changes (sorry) ***

Changed

  • Use u8 as default SPI as Serial Word type
  • The Minimum Supported Rust Version (MSRV) is now 1.46.0

Added

  • Added Can Controller Area Network traits.
  • Error traits for SPI, I2C and Serial traits. The error types used in those must
    implement these Error traits, which implies providing a conversion to a common
    set of error kinds. Generic drivers using these interfaces can then convert the errors
    to this common set to act upon them.

Removed

  • Removed DelayMs in favor of DelayUs with u32 as type for clarity.

Release 1.0.0-alpha.5

11 Sep 18:26
bd7f607
Compare
Choose a tag to compare

*** This is (also) an alpha release with breaking changes (sorry) ***

Added

  • Added IoPin trait for pins that can change between being inputs or outputs
    dynamically.
  • Added Debug to all spi mode types.

Changed

  • Swap PWM channel arguments to references
  • All trait methods have been renamed to remove the try_ prefix (i.e. try_send -> send) for consistency.
  • Moved all traits into two sub modules for each feature depending on the execution model: blocking and nb (non-blocking). For example, the spi traits can now be found under embedded_hal::spi::blocking or embedded_hal::spi::nb.
  • Execution-model-independent definitions have been moved into the feature module. For example, SPI Phase is now defined in embedded_hal::spi::Phase. For convenience, these definitions are reexported in both of its blocking and non-blocking submodules.
  • Re-export nb::{block!, Error, Result} to avoid version mismatches. These should be used instead of
    importing the nb crate directly in dependent crates.
  • blocking::Serial: renamed bwrite_all to write, bflush to `flush.
  • Removed prelude to avoid method name conflicts between different flavors (blocking, nb) of the same trait. Traits must now be manually imported.
  • Removed the various Default marker traits.
  • Removed &[W] returned slice in spi::blocking::Transfer.
  • Require all associated error types to implement core::fmt::Debug.

Removed

  • Removed random number generation (rng) traits in favor of rand_core.

Release 0.2.6

04 Aug 10:07
bccb903
Compare
Choose a tag to compare

Added

Backported non-breaking changes from the upcoming 1.0 release:

  • Transactional SPI interface for executing groups of SPI transactions.
  • Transactional I2C interface for executing groups of I2C transactions.
  • 10-bit addressing mode for I2C traits.
  • set_state method for OutputPin using an input PinState value.
  • IoPin trait for pins that can change between being inputs or outputs
    dynamically.