30 lines
967 B
C
Raw Normal View History

2025-04-10 17:31:33 +08:00
#ifndef _EC_I2C_H_
#define _EC_I2C_H_
typedef enum {
HW_I2C0 = 0,
HW_I2C1 ,
SW_I2C2 , //读取IMU异常
} ec_i2c_type;
typedef struct bus_func
{
uint8_t (*i2c_init)(uint8_t);
uint8_t (*i2c_scan)(uint8_t*,uint8_t);
uint8_t (*i2c_wait)(uint8_t,uint8_t*,uint16_t,uint32_t);
uint8_t (*i2c_read)(uint8_t,uint8_t,uint16_t,uint8_t*);
uint8_t (*i2c_send)(uint8_t,uint8_t,uint16_t,uint8_t*);
}bus_t;
bus_t I2C_getDefault(ec_i2c_type type);
uint8_t ec_i2c_init(uint8_t sn);
uint8_t ec_i2c_wait(uint8_t dev_id, uint8_t *data, uint16_t len, uint32_t time) ;
uint8_t ec_i2c_send(uint8_t dev_id, uint8_t reg_addr, uint16_t len, uint8_t *data);
uint8_t ec_i2c_read(uint8_t dev_id, uint8_t reg_addr, uint16_t len, uint8_t *data);
void ec_hal_i2c_set_id(uint32_t id);
uint8_t ec_hal_i2c_send(uint8_t addr, uint8_t reg, uint16_t len, uint8_t *data);
uint8_t ec_hal_i2c_read(uint8_t addr, uint8_t reg, uint16_t len, uint8_t *data);
#endif