#pragma once #include #include "driver/i2c_master.h" #include "esp_err.h" #ifdef __cplusplus extern "C" { #endif typedef struct { i2c_master_dev_handle_t device; uint8_t address; } l3g4200d_t; typedef struct { int16_t x; int16_t y; int16_t z; } l3g4200d_sample_t; /** Detect, identify, and configure an L3G4200D for 100 Hz, 25 Hz BW, +/-500 dps. */ esp_err_t l3g4200d_init(l3g4200d_t *sensor, i2c_master_bus_handle_t bus, uint32_t bus_speed_hz); /** Read one sensor-native, uncalibrated XYZ sample. */ esp_err_t l3g4200d_read_raw(const l3g4200d_t *sensor, l3g4200d_sample_t *sample); uint8_t l3g4200d_address(const l3g4200d_t *sensor); #ifdef __cplusplus } #endif