Add I2C Transmit and Receive function (#25637)
* feat: adds a transmit and receive i2c method * fix: address the i2c transmit and receive length on u16 * Add AVR/LUFA implementation Didn't add a progmem version, since that would only apply to receive. Figured it wasn't worth it, but can add. * Rearrange order of functions * Add docs * Fix doc gen error * Fix lint issues * fix more lint issues
This commit is contained in:
parent
efc5d63383
commit
28eeb92f8e
4 changed files with 72 additions and 0 deletions
|
|
@ -221,6 +221,31 @@ Receive multiple bytes from the selected I2C device.
|
|||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout)` {#api-i2c-transmit-and-receive}
|
||||
|
||||
Send and receive multiple bytes from the selected I2C device.
|
||||
|
||||
#### Arguments {#api-i2c-transmit-and-receive-arguments}
|
||||
|
||||
- `uint8_t address`
|
||||
The 7-bit I2C address of the device.
|
||||
- `const uint8_t* tx_data`
|
||||
A pointer to the data to transmit.
|
||||
- `uint16_t tx_length`
|
||||
The number of bytes to write. Take care not to overrun the length of `tx_data`.
|
||||
- `uint8_t* rx_data`
|
||||
A pointer to a buffer to read into.
|
||||
- `uint16_t rx_length`
|
||||
The number of bytes to read. Take care not to overrun the length of `data`.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value {#api-i2c-transmit-and-receive-return}
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register}
|
||||
|
||||
Write to a register with an 8-bit address on the I2C device.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue