Es necesario obtener los valores de velocidad angular del módulo de giroscopio en tablero" Amperka ". Pero incluso para leer el registro de identificador, devolvió respuestas incorrectas. Ya se pasó el día y ni siquiera lo he logrado, sin mencionar el ángulo. Utilizo la biblioteca HAL. Aquí está mi código:
void Accel_Ini(void)
{
uint16_t ctrl = 0x0000;
HAL_Delay(500);
if(Accel_ReadID()!=0x68) while(1);
AccInit(ctrl);
}
uint8_t Accel_ReadID(void)
{
uint8_t ctrl = 0x00;
ctrl = Accel_IO_Read(0x68,0x0F);
return ctrl;
}
uint8_t Accel_IO_Read(uint16_t DeviceAddr, uint8_t RegisterAddr)
{
return I2Cx_ReadData(DeviceAddr, RegisterAddr);
}
static uint8_t I2Cx_ReadData(uint16_t Addr, uint8_t Reg)
{
HAL_StatusTypeDef status = HAL_OK;
uint8_t value = 0;
status = HAL_I2C_Mem_Read(&hi2c1, Addr, Reg, I2C_MEMADD_SIZE_8BIT, &value, 1, 0x10000);
if(status != HAL_OK)
while(1);
return value;
}