I2C is a synchronous, half-duplex serial protocol built around just 2 lines: SCL (clock) and SDA (data), both open-drain and needing pull-up resistors. Unlike SPI, devices are addressed right on the bus -- each device answers to its own address (typically 7-bit), so many devices can share the same two wires with no extra per-device select line. That's convenient, but it also means two devices can't have the same address on one bus, and it's slower than SPI (typically 100kHz or 400kHz). Every byte gets an ACK/NACK bit back from the receiver, so unlike SPI you get built-in confirmation that a device actually saw what you sent.

HiZ> m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. KEYB
9. LCD
x. exit(without change)

(1)> 4
Set speed:
 1. ~5KHz
 2. ~50KHz
 3. ~100KHz
 4. ~400KHz

(1)> 1
Ready
I2C> W
Power supplies ON
I2C> P
Pull-up resistors ON
I2C>

I2C> [ 0xd0 0 ] [ 0xd1 r:7 ]
I2C START BIT
WRITE: 0xD0 ACK
WRITE: 0x00 ACK
I2C STOP BIT
I2C START BIT
WRITE: 0xD1 ACK
READ: 0x00  ACK 0x20  ACK 0x16  ACK 0x03  ACK 0x01  ACK 0x09  ACK 0x10
NACK
I2C STOP BIT
I2C>