Acelerómetro LIS302DL Comando WHO_AM_I

2

He configurado el comportamiento del acelerómetro LIS302DL con el siguiente código:

void initAccel(void)
{
    accelMeterInt.Latch_Request=LIS302DL_INTERRUPTREQUEST_NOTLATCHED;//LIS302DL_INTERRUPTREQUEST_LATCHED;
    accelMeterInt.SingleClick_Axes=LIS302DL_CLICKINTERRUPT_XYZ_DISABLE;
    accelMeterInt.DoubleClick_Axes=LIS302DL_DOUBLECLICKINTERRUPT_XYZ_DISABLE;

    accelMeter.Power_Mode=LIS302DL_LOWPOWERMODE_ACTIVE;
    accelMeter.Output_DataRate=LIS302DL_DATARATE_400;
    accelMeter.Axes_Enable=LIS302DL_X_ENABLE|LIS302DL_Y_ENABLE|LIS302DL_Z_ENABLE;
    accelMeter.Full_Scale=LIS302DL_FULLSCALE_9_2;
    accelMeter.Self_Test=LIS302DL_SELFTEST_NORMAL;

    LIS302DL_InterruptConfig(&accelMeterInt);
    LIS302DL_Init(&accelMeter);

    delay(ACCEL_METER_DELAY);
}   // init Accel

Después de usar este código, emito el comando WHO_AM_I con:

LIS302DL_Read(&ident,
    LIS302DL_WHO_AM_I_ADDR,
    sizeof(ident));

Ident contiene 0011 1111 después de esta llamada, pero de acuerdo con LIS302DL datasheet , debe contener 00111011 . ¿Hay algo mal / mi código no funciona y si es así, por qué? Estoy utilizando la placa de descubrimiento ST32F4 con el IDE de IAR Embedded Workbench.

    
pregunta KernelPanic

0 respuestas

Lea otras preguntas en las etiquetas