Functions providing an interrupt driven I2C slave interface.
More...
Functions providing an interrupt driven I2C slave interface.
This I2C slave helper library configures slave mode and hooks the relevant I2C IRQ so that a user supplied handler is called with enumerated I2C events.
An example application slave_mem_i2c
, which makes use of this library, can be found in pico_examples.
◆ i2c_slave_handler_t
I2C slave event handler.
The event handler will run from the I2C ISR, so it should return quickly (under 25 us at 400 kb/s). Avoid blocking inside the handler and split large data transfers across multiple calls for best results. When sending data to master, up to i2c_get_write_available() bytes can be written without blocking. When receiving data from master, up to 2c_get_read_available() bytes can be read without blocking.
- Parameters
-
◆ i2c_slave_event_t
I2C slave event types.
Enumerator |
---|
I2C_SLAVE_RECEIVE | Data from master is available for reading. Slave must read from Rx FIFO.
|
I2C_SLAVE_REQUEST | Master is requesting data. Slave must write into Tx FIFO.
|
I2C_SLAVE_FINISH | Master has sent a Stop or Restart signal. Slave may prepare for the next transfer.
|
◆ i2c_slave_deinit()
Restore an I2C instance to master mode.
- Parameters
-
◆ i2c_slave_init()
Configure an I2C instance for slave mode.
- Parameters
-
i2c | I2C instance. |
address | 7-bit slave address. |
handler | Callback for events from I2C master. It will run from the I2C ISR, on the CPU core where the slave was initialised. |