5 releases (3 breaking)
0.4.0 | Jul 17, 2024 |
---|---|
0.3.0 | Feb 16, 2024 |
0.2.0 | Nov 29, 2022 |
0.1.1 | Sep 2, 2020 |
0.1.0 | Aug 21, 2020 |
#139 in Embedded development
339 downloads per month
Used in 13 crates
12KB
182 lines
sensirion-i2c-rs
Rust library with common functionality for I2C based sensors from Sensirion.
lib.rs
:
Library with common functionality for I2C based sensors from Sensirion, based on the
embedded-hal
traits.
Usage
CRC8 calculation / validation
use sensirion_i2c::crc8;
let data = [0xbe, 0xef];
let crc = crc8::calculate(&data);
let data = [0xbe, 0xef, crc];
assert_eq!(Ok(()), crc8::validate(&data));
I2C
The I2C helpers work with any embedded_hal::i2c
implementation.
use embedded_hal_mock::eh1::i2c::{Mock as I2cMock, Transaction as I2cTransaction};
use sensirion_i2c::i2c;
let expectations = [I2cTransaction::write(0x12, vec![0x34, 0x56])];
let mut i2c_mock = I2cMock::new(&expectations);
i2c::write_command_u16(&mut i2c_mock, 0x12, 0x3456);
i2c_mock.done();
embedded-hal-async
The i2c_async
module provides versions of the I2C helpers in this crate
that use the embedded-hal-async
crate, rather than the
blocking I2C traits from embedded-hal
.
This module is only available when the embedded-hal-async
Cargo feature is enabled.
Dependencies
~61KB