* I2C ref doc 'repeated' description * Note the non-endianness for one byte formats * trigger rebuild
2.0 KiB
i2c Read Number
Read one number from an I2C address using a specified number format.
pins.i2cReadNumber(0, NumberFormat.Int8LE, false);
~hint
Simulator
This function needs real hardware to work with. It's not supported in the simulator.
~
Parameters
- address: the 7-bit I2C address of the device you want to read a number from.
- format: the NumberFormat of the number value to read.
- repeated: if
true, don't send a stop condition after the read. Otherwise, a stop condition is sent whenfalse(the default).
~ hint
A repeated start condition is set to help make sure that when you want to read multiple numbers from the device at one time, it can happen without interruption. A start conditon is sent (if repeated is true) each time a number is read without a matching stop condition. When the last number is read, the stop conditon can be sent by setting repeated to false. For single reads, don't use repeated or set it to false.
~
Returns
- a number from the device with the NumberFormat you asked for.
Examples
Read a big endian number from a device
The following example reads a number in big-endian, 16-bit, unsigned integer
format from the 7-bit I2C address 32.
Read a number from the device at a 7-bit I2C address as a 16-bit number. The 16, big-endian, and integer chosen for the format.
let inValue = pins.i2cReadNumber(32, NumberFormat.UInt16BE, false);
Repeated reads
Read three bytes from a device at address 33 at one time.
let nums: number[] = []
nums[0] = pins.i2cReadNumber(33, NumberFormat.UInt8LE, true)
nums[1] = pins.i2cReadNumber(33, NumberFormat.UInt8LE, true)
nums[2] = pins.i2cReadNumber(33, NumberFormat.UInt8LE, false)