ACwing FC firmware
STM32WB55: attitude IEKF, altitude Kalman filter, flight core, protocol v2
Loading...
Searching...
No Matches
imu_i2c.h
Go to the documentation of this file.
1
12#ifndef IMU_I2C_H
13#define IMU_I2C_H
14
15#include "main.h"
16#include "sensor_bus.h"
17#include "cmsis_os2.h"
18
20void imu_i2c_bus_init(I2C_HandleTypeDef *hi2c);
21int imu_i2c_lock(void);
22void imu_i2c_unlock(void);
23I2C_HandleTypeDef *imu_i2c_handle(void);
24void imu_i2c_make_bus(sensor_bus_t *bus, I2C_HandleTypeDef *hi2c, uint8_t addr7);
27int32_t imu_i2c_read_dma(uint8_t reg, uint8_t *buf, uint16_t len, uint32_t timeout_ms);
29void imu_i2c_rx_cplt_isr(I2C_HandleTypeDef *hi2c);
30void imu_i2c_error_isr(I2C_HandleTypeDef *hi2c);
31
32#endif /* IMU_I2C_H */
void imu_i2c_make_bus(sensor_bus_t *bus, I2C_HandleTypeDef *hi2c, uint8_t addr7)
Definition imu_i2c.c:66
void imu_i2c_error_isr(I2C_HandleTypeDef *hi2c)
Definition imu_i2c.c:96
void imu_i2c_rx_cplt_isr(I2C_HandleTypeDef *hi2c)
To be called from HAL_I2C_MemRxCpltCallback / HAL_I2C_ErrorCallback.
Definition imu_i2c.c:91
int32_t imu_i2c_read_dma(uint8_t reg, uint8_t *buf, uint16_t len, uint32_t timeout_ms)
Starts the DMA read and blocks the calling task until completion.
Definition imu_i2c.c:76
int imu_i2c_lock(void)
0 = taken (or no kernel yet), -1 = timeout
Definition imu_i2c.c:28
void imu_i2c_unlock(void)
Definition imu_i2c.c:34
void imu_i2c_bus_init(I2C_HandleTypeDef *hi2c)
Creates the bus lock: call once before starting the tasks that use the bus.
Definition imu_i2c.c:21
I2C_HandleTypeDef * imu_i2c_handle(void)
Definition imu_i2c.c:39
Platform-independent bus interface.