mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Add cambus read/write bytes.
This commit is contained in:
parent
bf2199f396
commit
0b6dc728ba
@ -38,6 +38,16 @@ int cambus_init(I2C_HandleTypeDef *i2c, I2C_TypeDef *instance, uint32_t timing)
|
|||||||
/* Initialization Error */
|
/* Initialization Error */
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cambus_deinit(I2C_HandleTypeDef *i2c)
|
||||||
|
{
|
||||||
|
if (i2c->Instance) {
|
||||||
|
HAL_I2C_DeInit(i2c);
|
||||||
|
}
|
||||||
|
i2c->Instance = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,3 +166,51 @@ int cambus_writew2(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr,
|
|||||||
__enable_irq();
|
__enable_irq();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cambus_read_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t *buf, int len)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
__disable_irq();
|
||||||
|
if (HAL_I2C_Mem_Read(i2c, slv_addr, reg_addr,
|
||||||
|
I2C_MEMADD_SIZE_8BIT, buf, len, I2C_TIMEOUT) != HAL_OK) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
__enable_irq();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cambus_write_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t *buf, int len)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
__disable_irq();
|
||||||
|
if (HAL_I2C_Mem_Write(i2c, slv_addr, reg_addr,
|
||||||
|
I2C_MEMADD_SIZE_8BIT, buf, len, I2C_TIMEOUT) != HAL_OK) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
__enable_irq();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cambus_readw_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint8_t *buf, int len)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
__disable_irq();
|
||||||
|
if (HAL_I2C_Mem_Read(i2c, slv_addr, reg_addr,
|
||||||
|
I2C_MEMADD_SIZE_16BIT, buf, len, I2C_TIMEOUT) != HAL_OK) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
__enable_irq();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cambus_writew_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint8_t *buf, int len)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
__disable_irq();
|
||||||
|
if (HAL_I2C_Mem_Write(i2c, slv_addr, reg_addr,
|
||||||
|
I2C_MEMADD_SIZE_16BIT, buf, len, I2C_TIMEOUT) != HAL_OK) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
__enable_irq();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|||||||
@ -41,4 +41,8 @@ int cambus_readw(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, ui
|
|||||||
int cambus_writew(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint16_t reg_data);
|
int cambus_writew(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint16_t reg_data);
|
||||||
int cambus_readw2(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint16_t *reg_data);
|
int cambus_readw2(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint16_t *reg_data);
|
||||||
int cambus_writew2(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint16_t reg_data);
|
int cambus_writew2(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint16_t reg_data);
|
||||||
|
int cambus_read_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t *buf, int len);
|
||||||
|
int cambus_write_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t *buf, int len);
|
||||||
|
int cambus_readw_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint8_t *buf, int len);
|
||||||
|
int cambus_writew_bytes(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint8_t *buf, int len);
|
||||||
#endif // __CAMBUS_H__
|
#endif // __CAMBUS_H__
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user