![]() |
Midnight Sun Firmware
|
I2C library. More...
Classes | |
| struct | I2CSettings |
| I2C settings struct. More... | |
Macros | |
| #define | I2C_TIMEOUT_MS 100U |
| Maximum time permitted for an I2C transaction. | |
| #define | I2C_MAX_NUM_DATA 32U |
| None of our I2C transactions should need to be longer than 32 bytes. | |
Typedefs | |
| typedef uint8_t | I2CAddress |
| I2C address type. | |
Enumerations | |
| enum | I2CPort { I2C_PORT_1 = 0 , I2C_PORT_2 , NUM_I2C_PORTS } |
| I2C Port selection. More... | |
| enum | I2CSpeed { I2C_SPEED_STANDARD = 0 , I2C_SPEED_FAST , NUM_I2C_SPEEDS } |
| I2C speed type. More... | |
Functions | |
| StatusCode | i2c_init (I2CPort i2c, const I2CSettings *settings) |
| Initialize I2C instance. More... | |
| StatusCode | i2c_read (I2CPort i2c, I2CAddress addr, uint8_t *rx_data, size_t rx_len) |
| Reads data using the I2C port from the specified address. More... | |
| StatusCode | i2c_write (I2CPort i2c, I2CAddress addr, uint8_t *tx_data, size_t tx_len) |
| Writes data using the I2C port to the specified address. More... | |
| StatusCode | i2c_read_reg (I2CPort i2c, I2CAddress addr, uint8_t reg, uint8_t *rx_data, size_t rx_len) |
| Reads data using the I2C port from the specified address and register. More... | |
| StatusCode | i2c_write_reg (I2CPort i2c, I2CAddress addr, uint8_t reg, uint8_t *tx_data, size_t tx_len) |
| Writes data using the I2C port to the specified address and register. More... | |
| StatusCode | i2c_read_mem (I2CPort i2c, I2CAddress addr, uint8_t mem_addr, uint8_t *rx_data, size_t rx_len) |
| Reads from a memory address using the I2C port. More... | |
I2C library.
| enum I2CPort |
| enum I2CSpeed |
| StatusCode i2c_init | ( | I2CPort | i2c, |
| const I2CSettings * | settings | ||
| ) |
Initialize I2C instance.
| i2c | Specifies which I2C port to initialize |
| settings | Pointer to I2C initialization settings |
| StatusCode i2c_read | ( | I2CPort | i2c, |
| I2CAddress | addr, | ||
| uint8_t * | rx_data, | ||
| size_t | rx_len | ||
| ) |
Reads data using the I2C port from the specified address.
| i2c | Specifies which I2C port to read with |
| addr | The I2C address to read from |
| rx_data | Pointer to a buffer to receive data |
| rx_len | Length of data to receive |
| StatusCode i2c_read_mem | ( | I2CPort | i2c, |
| I2CAddress | addr, | ||
| uint8_t | mem_addr, | ||
| uint8_t * | rx_data, | ||
| size_t | rx_len | ||
| ) |
Reads from a memory address using the I2C port.
This sends the peripheral address, mem_addr, REPEATED_START, peripheral address [reads RX DATA] This uses the HAL_I2C_Mem_Read function
| i2c | Specifies which I2C port to write with |
| addr | Specifies the I2C address to read from |
| mem_addr | Specifies the memory address to read from |
| rx_data | Pointer to a buffer to receive data |
| rx_len | Length of the data to receive |
| StatusCode i2c_read_reg | ( | I2CPort | i2c, |
| I2CAddress | addr, | ||
| uint8_t | reg, | ||
| uint8_t * | rx_data, | ||
| size_t | rx_len | ||
| ) |
Reads data using the I2C port from the specified address and register.
| i2c | Specifies which I2C port to read with |
| addr | Specifies the I2C address to read from |
| reg | Specifies the register to read from |
| rx_data | Pointer to a buffer to receive data |
| rx_len | Length of the data to receive |
| StatusCode i2c_write | ( | I2CPort | i2c, |
| I2CAddress | addr, | ||
| uint8_t * | tx_data, | ||
| size_t | tx_len | ||
| ) |
Writes data using the I2C port to the specified address.
| i2c | Specifies which I2C port to write with |
| addr | Specifies the I2C address to write to |
| tx_data | Pointer to a buffer to transmit data |
| tx_len | Length of the data to transmit |
| StatusCode i2c_write_reg | ( | I2CPort | i2c, |
| I2CAddress | addr, | ||
| uint8_t | reg, | ||
| uint8_t * | tx_data, | ||
| size_t | tx_len | ||
| ) |
Writes data using the I2C port to the specified address and register.
| i2c | Specifies which I2C port to write with |
| addr | Specifies the I2C address to write to |
| reg | Specifies the register to write to |
| tx_data | Pointer to a buffer to transmit data |
| tx_len | Length of the data to transmit |