pxt-calliope/docs/reference/pins/i2c-write-number.md
Galen Nickel 079cd67c38 Update 'pins' ref pages (#1733)
* Update 'pins' ref pages

* Some jsdoc touchups
2019-01-03 16:02:19 -08:00

53 lines
1.8 KiB
Markdown

# i2c Write Number
Write a number to a device at an I2C address using a specified number format.
```sig
pins.i2cWriteNumber(0, 0, NumberFormat.Int8LE, true);
```
### ~ 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 to send to send **value** to.
* **value**: the number to send to **address**.
* **format**: the [NumberFormat](/types/buffer/number-format) for **value**.
* **repeated**: if `true`, don't send a stop condition after the write. Otherwise, a stop condition is sent when `false` (the default).
### ~ hint
A [repeated start condition](http://www.i2c-bus.org/repeated-start-condition/) is set to help make sure that when you want to write 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 written without a matching stop condition. When the last number is written, the stop conditon can be sent by setting **repeated** to `false`. For single writes, don't use **repeated** or set it to `false`.
### ~
## Examples
### Write a big endian number to a device
Send the value `2055` to the 7-bit I2C address as a 32-bit number. The `32`, big-endian, and integer chosen for the format.
```blocks
pins.i2cWriteNumber(32, 2055, NumberFormat.Int32BE, false);
```
### Repeated writes
Send three byte values to a device at address `33`.
```blocks
pins.i2cWriteNumber(33, 19, NumberFormat.Int32BE, true);
pins.i2cWriteNumber(33, 61, NumberFormat.Int32BE, true);
pins.i2cWriteNumber(33, 87, NumberFormat.Int32BE, false);
```
## See also
[i2c read number](/reference/pins/i2c-read-number)
[What's I2C?](http://www.i2c-bus.org/), [number format](/types/buffer/number-format)