![]() |
Mbed OS Reference
|
Modules | |
| I2C hal tests | |
| The I2C HAL tests ensure driver conformance to defined behaviour. | |
Functions | |
| void | i2c_init_direct (i2c_t *obj, const i2c_pinmap_t *pinmap) |
| Initialize the I2C peripheral. | |
| void | i2c_init (i2c_t *obj, PinName sda, PinName scl) |
| Initialize the I2C peripheral. | |
| void | i2c_free (i2c_t *obj) |
| Release a I2C object. | |
| void | i2c_frequency (i2c_t *obj, int hz) |
| Configure the I2C frequency. | |
| int | i2c_read (i2c_t *obj, int address, char *data, int length, int stop) |
| Blocking read of data. | |
| int | i2c_write (i2c_t *obj, int address, const char *data, int length, int stop) |
| Blocking write of data. | |
| int | i2c_start (i2c_t *obj) |
| Send START command. | |
| int | i2c_stop (i2c_t *obj) |
| Send STOP command. | |
| void | i2c_reset (i2c_t *obj) |
| Reset I2C peripheral. | |
| int | i2c_byte_read (i2c_t *obj, int last) |
| Read one byte. | |
| int | i2c_byte_write (i2c_t *obj, int data) |
| Write one byte. | |
| const PinMap * | i2c_master_sda_pinmap (void) |
| Get the pins that support I2C SDA. | |
| const PinMap * | i2c_master_scl_pinmap (void) |
| Get the pins that support I2C SCL. | |
| const PinMap * | i2c_slave_sda_pinmap (void) |
| Get the pins that support I2C SDA. | |
| const PinMap * | i2c_slave_scl_pinmap (void) |
| Get the pins that support I2C SCL. | |
| i2c_capabilities_t const * | i2c_get_capabilities () |
| Fills the given i2c_capabilities_t structure with the capabilities of the I2C peripheral. | |
length bytes from the I2C slave specified by address to the data bufferstop parameter is non-zerolength bytes to the I2C slave specified by address from the data bufferstop parameter is non-zerolast parameter to inform the slave that all bytes have been readlength bytes from the I2C master to the data bufferlength bytes to the I2C master from the data buffertx_length bytes to the I2C slave specified by address from the tx bufferrx_length bytes from the I2C slave specified by address to the rx bufferstop parameter is non-zeroDMAUsage hint to select the appropriate async algorithmi2c_ti2c_tI2C peripheral with invalid SDA and SCL pins.obj to any functionnull pointer as an argument to any function.I2C reserved valueread or write functionshandler| void i2c_init_direct | ( | i2c_t * | obj, |
| const i2c_pinmap_t * | pinmap | ||
| ) |
Initialize the I2C peripheral.
It sets the default parameters for I2C peripheral, and configures its specifieds pins.
| obj | The I2C object |
| pinmap | Pinmap pointer to structure which holds static pinmap |
| void i2c_init | ( | i2c_t * | obj, |
| PinName | sda, | ||
| PinName | scl | ||
| ) |
Initialize the I2C peripheral.
It sets the default parameters for I2C peripheral, and configures its specifieds pins.
| obj | The I2C object |
| sda | The sda pin |
| scl | The scl pin |
| void i2c_free | ( | i2c_t * | obj | ) |
Release a I2C object.
Return the pins owned by the I2C object to their reset state
| obj | The I2C object to deinitialize |
| void i2c_frequency | ( | i2c_t * | obj, |
| int | hz | ||
| ) |
Configure the I2C frequency.
| obj | The I2C object |
| hz | Frequency in Hz |
| int i2c_read | ( | i2c_t * | obj, |
| int | address, | ||
| char * | data, | ||
| int | length, | ||
| int | stop | ||
| ) |
Blocking read of data.
This function may be called in these I2C states:
| obj | The I2C object |
| address | 8/11-bit address (last bit is 1) |
| data | The buffer for receiving |
| length | Number of bytes to read. Allowed to be 0 only if the supports_zero_length_transfer_transaction capability is true. |
| stop | Stop to be generated after the transfer is done |
| int i2c_write | ( | i2c_t * | obj, |
| int | address, | ||
| const char * | data, | ||
| int | length, | ||
| int | stop | ||
| ) |
Blocking write of data.
This function may be called in these I2C states:
| obj | The I2C object |
| address | 8/11-bit address (last bit is 0) |
| data | The buffer for sending |
| length | Number of bytes to write. Allowed to be 0 only if the supports_zero_length_transfer_transaction capability is true. |
| stop | Stop to be generated after the transfer is done |
| zero | or non-zero - Number of written bytes |
| negative | - I2C_ERROR_XXX status |
| int i2c_start | ( | i2c_t * | obj | ) |
Send START command.
The I2C class guarantees that this will only be called at appropriate times (when the bus is idle or during an existing single-byte transaction to do a repeated start).
Note that some I2C peripherals (e.g. RP2xxx, newer STM32s) are not capable of sending a start condition until the address is known. On these MCUs, the start condition will not actually be sent until the first write_byte() call after the start().
This function may be called in these I2C states:
| obj | The I2C object |
| int i2c_stop | ( | i2c_t * | obj | ) |
Send STOP command.
This function may be called in these I2C states:
supports_zero_length_transfer_single_byte capability is enabled)| obj | The I2C object |
| void i2c_reset | ( | i2c_t * | obj | ) |
Reset I2C peripheral.
TODO: The action here. Most of the implementation sends stop()
| obj | The I2C object |
| int i2c_byte_read | ( | i2c_t * | obj, |
| int | last | ||
| ) |
Read one byte.
This function may be called in these I2C states:
| obj | The I2C object |
| last | Acknoledge |
| int i2c_byte_write | ( | i2c_t * | obj, |
| int | data | ||
| ) |
Write one byte.
This function may be called in these I2C states:
| obj | The I2C object |
| data | Byte to be written |
| const PinMap * i2c_master_sda_pinmap | ( | void | ) |
| const PinMap * i2c_master_scl_pinmap | ( | void | ) |
| const PinMap * i2c_slave_sda_pinmap | ( | void | ) |
| const PinMap * i2c_slave_scl_pinmap | ( | void | ) |
| i2c_capabilities_t const * i2c_get_capabilities | ( | ) |
Fills the given i2c_capabilities_t structure with the capabilities of the I2C peripheral.