Es necesario obtener los valores de la velocidad angular del módulo giroscopio en "Tablero "Amperka . Pero incluso para leer el registro identificador, devuelto respuestas incorrectas. Ya se pasa el día y no han logrado incluso esto, por no hablar de la angular ) Yo uso 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;
}