NavHAL 0.1.0
NAVRobotec's architecture-agnostic HAL for embedded systems.
Loading...
Searching...
No Matches
i2c.h
Go to the documentation of this file.
1
18
19#ifndef CORTEX_M4_I2C_H
20#define CORTEX_M4_I2C_H
21
22#include "utils/gpio_types.h"
23#include <stdbool.h>
24#include <stdint.h>
25
36
40typedef enum {
41 I2C1 = 0,
42 I2C2 = 1,
43 I2C3 = 2
45
49typedef enum {
53
55#define I2C_MASTER 0
56
58#define GPIO_FUNC_I2C GPIO_AF04
59
68
77
87hal_i2c_status_t hal_i2c_write(uint8_t bus, uint8_t dev_addr,
88 const uint8_t *data, uint16_t len);
89
99hal_i2c_status_t hal_i2c_read(uint8_t bus, uint8_t dev_addr, uint8_t *data,
100 uint16_t len);
101
113hal_i2c_status_t hal_i2c_write_read(uint8_t bus, uint8_t dev_addr,
114 const uint8_t *tx_data, uint16_t tx_len,
115 uint8_t *rx_data, uint16_t rx_len);
116
122uint8_t hal_i2c_get_init_status(void);
123
124#endif // !CORTEX_M4_I2C_H
GPIO pin definitions and related types for NavHAL.
hal_i2c_status_t hal_i2c_write_read(uint8_t bus, uint8_t dev_addr, const uint8_t *tx_data, uint16_t tx_len, uint8_t *rx_data, uint16_t rx_len)
Write to a device register and read back data.
Definition i2c.c:317
uint8_t hal_i2c_get_init_status(void)
Get the initialization status of the I²C peripheral.
Definition i2c.c:42
hal_i2c_status_t hal_i2c_read(uint8_t bus, uint8_t dev_addr, uint8_t *data, uint16_t len)
Read data from an I²C device.
Definition i2c.c:254
hal_i2c_speed_t
I²C speed modes.
Definition i2c.h:49
@ STANDARD_MODE
Definition i2c.h:50
@ FAST_MODE
Definition i2c.h:51
hal_i2c_status_t hal_i2c_write(uint8_t bus, uint8_t dev_addr, const uint8_t *data, uint16_t len)
Write data to an I²C device.
Definition i2c.c:205
hal_i2c_bus_t
Supported I²C bus instances.
Definition i2c.h:40
@ I2C3
Definition i2c.h:43
@ I2C2
Definition i2c.h:42
@ I2C1
Definition i2c.h:41
hal_i2c_status_t hal_i2c_init(hal_i2c_bus_t bus, hal_i2c_config_t *config)
Initialize the I²C peripheral.
Definition i2c.c:62
hal_i2c_status_t
I²C operation status codes.
Definition i2c.h:29
@ HAL_I2C_OK
Definition i2c.h:30
@ HAL_I2C_ERR_BUS
Definition i2c.h:32
@ HAL_I2C_ERR_REINIT
Definition i2c.h:34
@ HAL_I2C_ERR_TIMEOUT
Definition i2c.h:31
@ HAL_I2C_ERR_NACK
Definition i2c.h:33
I²C configuration structure.
Definition i2c.h:63
hal_i2c_speed_t clock_speed
Definition i2c.h:64
uint8_t own_address
Definition i2c.h:65
bool acknowledge
Definition i2c.h:66