ICM42670 Portable Driver
Public API reference for the ICM-42670-P IMU driver
Loading...
Searching...
No Matches
ICM42670_stm32_hal.h
Go to the documentation of this file.
1
6#ifndef ICM42670_STM32_HAL_H
7#define ICM42670_STM32_HAL_H
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#include "ICM42670_driver.h"
14#include "stm32h5xx_hal.h"
15
19typedef struct {
20 SPI_HandleTypeDef *hspi;
21 GPIO_TypeDef *cs_port;
22 uint16_t cs_pin;
23 uint32_t timeout_ms;
25
41 SPI_HandleTypeDef *hspi,
42 GPIO_TypeDef *cs_port,
43 uint16_t cs_pin);
44
54int8_t ICM42670_STM32_SPI_ReadReg(void *handle, uint8_t reg_addr, uint8_t *data,
55 uint16_t len);
56
66int8_t ICM42670_STM32_SPI_WriteReg(void *handle, uint8_t reg_addr,
67 const uint8_t *data, uint16_t len);
68
69#ifdef HAL_I2C_MODULE_ENABLED
73typedef struct {
74 I2C_HandleTypeDef *hi2c;
75 uint8_t device_addr;
76 uint32_t timeout_ms;
77} ICM42670_STM32_I2CBus;
78
88ICM42670_Status_t ICM42670_STM32_I2C_INIT(ICM42670_Config *config,
89 ICM42670_STM32_I2CBus *bus,
90 I2C_HandleTypeDef *hi2c,
91 uint8_t device_addr);
92
102int8_t ICM42670_STM32_I2C_ReadReg(void *handle, uint8_t reg_addr, uint8_t *data,
103 uint16_t len);
104
114int8_t ICM42670_STM32_I2C_WriteReg(void *handle, uint8_t reg_addr,
115 const uint8_t *data, uint16_t len);
116#endif /* HAL_I2C_MODULE_ENABLED */
117
118#ifdef HAL_I3C_MODULE_ENABLED
122typedef struct {
123 I3C_HandleTypeDef *hi3c;
124 uint8_t target_dynamic_addr;
125 uint32_t timeout_ms;
126} ICM42670_STM32_I3CBus;
127
137ICM42670_Status_t ICM42670_STM32_I3C_INIT(ICM42670_Config *config,
138 ICM42670_STM32_I3CBus *bus,
139 I3C_HandleTypeDef *hi3c,
140 uint8_t target_dynamic_addr);
141
151int8_t ICM42670_STM32_I3C_ReadReg(void *handle, uint8_t reg_addr, uint8_t *data,
152 uint16_t len);
153
163int8_t ICM42670_STM32_I3C_WriteReg(void *handle, uint8_t reg_addr,
164 const uint8_t *data, uint16_t len);
165#endif /* HAL_I3C_MODULE_ENABLED */
166
167#ifdef __cplusplus
168}
169#endif
170
171#endif /* ICM42670_STM32_HAL_H */
Core ICM-42670-P configuration and sensor read API.
ICM42670_Status_t
Return codes used by the ICM-42670-P driver.
Definition ICM42670_driver.h:23
int8_t ICM42670_STM32_SPI_WriteReg(void *handle, uint8_t reg_addr, const uint8_t *data, uint16_t len)
STM32 SPI register-write callback for ICM42670_Config.
Definition ICM42670_stm32_hal.c:122
ICM42670_Status_t ICM42670_STM32_SPI_INIT(ICM42670_Config *config, ICM42670_STM32_SPIBus *bus, SPI_HandleTypeDef *hspi, GPIO_TypeDef *cs_port, uint16_t cs_pin)
Configure an ICM42670_Config for STM32 HAL SPI access.
Definition ICM42670_stm32_hal.c:66
int8_t ICM42670_STM32_SPI_ReadReg(void *handle, uint8_t reg_addr, uint8_t *data, uint16_t len)
STM32 SPI register-read callback for ICM42670_Config.
Definition ICM42670_stm32_hal.c:91
Platform-independent driver configuration.
Definition ICM42670_driver.h:172
STM32 SPI bus state used by the portable driver callbacks.
Definition ICM42670_stm32_hal.h:19
uint32_t timeout_ms
Definition ICM42670_stm32_hal.h:23
GPIO_TypeDef * cs_port
Definition ICM42670_stm32_hal.h:21
uint16_t cs_pin
Definition ICM42670_stm32_hal.h:22
SPI_HandleTypeDef * hspi
Definition ICM42670_stm32_hal.h:20