Skip to main content

read_word

Function read_word 

Source
pub fn read_word<I2C: I2c>(
    bus: &mut I2C,
    address: u8,
    register: u8,
) -> Result<u16, I2C::Error>
Expand description

Reads a 16-bit register that travels most significant byte first.

§Arguments

  • bus - the I2C bus.
  • address - the part’s 7-bit address.
  • register - the register address, or pointer value, to read.

§Returns

The register’s value.

§Errors

Returns the bus error if the part does not answer.

§Examples

use pamoja_hal::script::{I2cScript, I2cStep};
use pamoja_sensors::driver::read_word;
use pamoja_sensors::tmp117::{address, register, DEVICE_ID};

// A TMP117 reads its device id register as one word, high byte first.
const PART: u8 = address::ADD0_GND;
let answer = DEVICE_ID.to_be_bytes();
let mut bus = I2cScript::new([I2cStep::write_read(PART, [register::DEVICE_ID], answer)]);
assert_eq!(read_word(&mut bus, PART, register::DEVICE_ID)?, DEVICE_ID);