Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ReferredCoursework2016 by
lsm6ds3.h
00001 /** 00002 ****************************************************************************** 00003 * @file lsm6ds3.h 00004 * @author MEMS Application Team 00005 * @version V1.2.0 00006 * @date 28-May-2015 00007 * @brief This file contains definitions for the lsm6ds3.c firmware driver 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __LSM6DS3_H 00040 #define __LSM6DS3_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "imu_6axes.h" 00048 00049 /** @addtogroup BSP 00050 * @{ 00051 */ 00052 00053 /** @addtogroup Components 00054 * @{ 00055 */ 00056 00057 /** @addtogroup LSM6DS3 00058 * @{ 00059 */ 00060 00061 /** @addtogroup LSM6DS3_Exported_Defines LSM6DS3_Exported_Defines 00062 * @{ 00063 */ 00064 #ifndef NULL 00065 #define NULL (void *) 0 00066 #endif 00067 00068 /******************************************************************************/ 00069 /*********** START ACCELEROMETER AND GYROSCOPE REGISTER MAPPING **************/ 00070 /******************************************************************************/ 00071 00072 00073 /***************************************** COMMON REGISTERS ********************************************/ 00074 00075 /** 00076 * @brief FIFO control register 00077 * \code 00078 * Read/write 00079 * Default value: 0x00 00080 * [7] FUNC_CFG_EN: Enable access to the embedded functions configuration registers (1) from address 02h to 32h. Default value: 0. 00081 * [6:0] This bit must be set to �0� for the correct operation of the device 00082 * \endcode 00083 */ 00084 #define LSM6DS3_XG_FUNC_CFG_ACCESS 0x01 00085 00086 /** 00087 * @brief FIFO control register 00088 * \code 00089 * Read/write 00090 * Default value: 0x00 00091 * [7:0] TPH_[7:0]: Sensor SyncronizationTime Frame with the step of 500ms and full range of 5s. Default: 0000 0000 00092 * \endcode 00093 */ 00094 #define LSM6DS3_XG_SENSOR_SYNC_TIME_FRAME 0x04 00095 00096 /** 00097 * @brief FIFO control register 00098 * \code 00099 * Read/write 00100 * Default value: 0x00 00101 * [7:2] This bit must be set to �0� for the correct operation of the device 00102 * [1] HP_RST: Gyro digital HP filter reset. Default: 0 00103 * [1] SENSOR_SYNC_ENHP_RST: Enable sensor synchronization feature. Default 0 00104 * \endcode 00105 */ 00106 #define LSM6DS3_XG_SENSOR_SYNC_ENABLE 0x05 00107 00108 00109 /** 00110 * @brief FIFO control register 00111 * \code 00112 * Read/write 00113 * Default value: 0x00 00114 * [7:0] FTH_7-0 FIFO threshold level setting - watermark flag is toggled when the number of bytes written to FIFO is greater or equal to threshold level. 00115 * \endcode 00116 */ 00117 #define LSM6DS3_XG_FIFO_CTRL1 0x06 00118 00119 /** 00120 * @brief FIFO control register 00121 * \code 00122 * Read/write 00123 * Default value: 0x00 00124 * [7] TIMER_PEDO_FIFO_EN: Enable Pedometer step counter and time stamp as 4th sensor FIFO data. Default: 0 disabled 00125 * [6] TIMER_PEDO_FIFO_DRDY : Pedometer FIFO write mode. Default: 0 disabled 00126 * [5:4] This bit must be set to �0� for the correct operation of the device 00127 * [3:0] FTH_[11:8] FIFO threshold level setting(1). Default value: 0000 00128 * \endcode 00129 */ 00130 #define LSM6DS3_XG_FIFO_CTRL2 0x07 00131 00132 /** 00133 * @brief FIFO control register 00134 * \code 00135 * Read/write 00136 * Default value: 0x00 00137 * [7:6] This bit must be set to �0� for the correct operation of the device 00138 * [5:3] DEC_FIFO_GYRO[2:0]: Gyro FIFO decimation setting. Default value: 000 00139 * [2:0] DEC_FIFO_XL[2:0]: XL FIFO decimation setting. Default value: 000 00140 * \endcode 00141 */ 00142 #define LSM6DS3_XG_FIFO_CTRL3 0x08 00143 00144 /** 00145 * @brief FIFO control register 00146 * \code 00147 * Read/write 00148 * Default value: 0x00 00149 * [7] This bit must be set to �0� for the correct operation of the device 00150 * [6] ONLY_HIGH_DATA :8 bit data storing in FIFO. Default: 0 00151 * [5:3] DEC_SLV1_FIFO[2:0] Second external sensor FIFO decimation setting. Default: 000 00152 * [2:0] DEC_SLV1_FIFO[2:0] First external sensor FIFO decimation setting. Default: 000 00153 * \endcode 00154 */ 00155 #define LSM6DS3_XG_FIFO_CTRL4 0x09 00156 00157 00158 /** 00159 * @brief FIFO control register 00160 * \code 00161 * Read/write 00162 * Default value: 0x00 00163 * [7] This bit must be set to �0� for the correct operation of the device 00164 * [6:3] ODR_FIFO_[3:0]: FIFO ODR selection. Default: 0000 00165 * [2:0] FIFO_MODE_[2:0] : FIFO mode selection bits. Default value: 000 00166 * \endcode 00167 */ 00168 #define LSM6DS3_XG_FIFO_CTRL5 0x0A 00169 00170 00171 /** 00172 * @brief Angular rate sensor sign and orientation register 00173 * \code 00174 * Read/write 00175 * Default value: 0x00 00176 * [7:6] This bit must be set to �0� for the correct operation of the device 00177 * [5] SignX_G: Pitch axis (X) Angular rate sign. Default value: 0 00178 * [5] SignY_G: Roll axis (Y) Angular rate sign. Default value: 0 00179 * [5] SignZ_G: Pitch axis (Z) Angular rate sign. Default value: 0 00180 * [2:0] Orient[2:0] : Directional user orientation selection. Default Value: 000 00181 * \endcode 00182 */ 00183 #define LSM6DS3_XG_ORIENT_CFG_G 0x0B 00184 00185 /** 00186 * @brief INT1 pad control registrer 00187 * \code 00188 * Read/write 00189 * Default value: 0x00 00190 * [7] INT1_PEDO: Pedometer step recognition interrupt enable on INT1 pad. Default value: 0 00191 * [6] INT1_SIGN_MOT: Significant motion interrupt enable on INT1 pad. Default value: 0 00192 * [5] INT1_FULL_FLAG: Full flag Interrupt Enable on INT1 pad. Default value: 0 00193 * [4] INT1_OVR: Overrun Interrupt on INT1 pad. Default value: 0 00194 * [3] INT1_FTH: FIFO threshold interrupt on INT1 pad. Default value: 0 00195 * [2] INT1_BOOT: Overrun Interrupt on INT1 pad. Default value: 0 00196 * [1] INT1_DRDY_G: Gyroscope Data Ready on INT1 pad. Default value: 0. 00197 * [0] INT1_DRDY_XL: Accelerometer Data Ready on INT1 pad. Default value: 0 00198 * \endcode 00199 */ 00200 #define LSM6DS3_XG_INT1_CTRL 0x0D 00201 00202 00203 //new, done 00204 /** 00205 * @brief INT2 pad control registrer 00206 * \code 00207 * Read/write 00208 * Default value: 0x00 00209 * [7] INT2_PEDO: Pedometer step recognition interrupt enable on INT1 pad. Default value: 0 00210 * [6] INT2_SIGN_MOT: Significant motion interrupt enable on INT1 pad. Default value: 0 00211 * [5] INT2_FULL_FLAG: Full flag Interrupt Enable on INT1 pad. Default value: 0 00212 * [4] INT2_OVR: Overrun Interrupt on INT1 pad. Default value: 0 00213 * [3] INT2_FTH: FIFO threshold interrupt on INT1 pad. Default value: 0 00214 * [2] INT2_BOOT: Overrun Interrupt on INT1 pad. Default value: 0 00215 * [1] INT2_DRDY_G: Gyroscope Data Ready on INT1 pad. Default value: 0. 00216 * [0] INT2_DRDY_XL: Accelerometer Data Ready on INT1 pad. Default value: 0 00217 * \endcode 00218 */ 00219 #define LSM6DS3_XG_INT2_CTRL 0x0E 00220 00221 00222 /** 00223 * @brief Device identifier register. 00224 * \code 00225 * Read 00226 * Default value:69 00227 * [7:0] This read-only register contains the device identifier 00228 * \endcode 00229 */ 00230 #define LSM6DS3_XG_WHO_AM_I_ADDR 0x0F 00231 00232 00233 /** 00234 * @brief Control Register 3 00235 * \code 00236 * Read/write 00237 * Default value: 0x00 00238 * [7] BOOT: Reboot memory content. Default value: 0 00239 * [6] BDU: Block Data Update. Default value: 0 00240 * [5] H_LACTIVE: Interrupt activation level. Default value: 0 00241 * [4] PP_OD: Push-pull/Open Drain selection on INT pad. Default value: 0 00242 * [3] SIM: SPI Serial Interface Mode selection. Default value: 0 00243 * [2] IF_INC: Register address automatically incremented during a multiple byte access with a serial interface (I2C or SPI). Default value: 0 00244 * [1] BLE: Big/Little Endian Data Selection. Default value: 0 00245 * [0] SW_RESET: Software Reset. Default value: 0 00246 * \endcode 00247 */ 00248 #define LSM6DS3_XG_CTRL3_C 0x12 00249 00250 /** 00251 * @brief Control Register 4 00252 * \code 00253 * Read/write 00254 * Default value: 0x00 00255 * [7] BW_SCAL_ODR: Accelerometer bandwidth selection. Default value: 0 00256 * [6] SLEEP_G: Gyroscope sleep mode enable. Default value: 0 00257 * [5] INT2_on_INT1: All interrupt signals available on INT1 pad enable. Default value: 0 00258 * [4] This bit must be set to �0� for the correct operation of the device 00259 * [3] DRDY_MASK: Configuration 1(3) Data Available Enable bit. Default Value: 0 00260 * [2] I2C_disable Disable I2C interface. Default value: 0 00261 * [1] MODE3_EN Enable auxiliary SPI interface (Mode3, refer to Table 1.). Default value: 0 00262 * [0] STOP_ON_FTH Enable FIFO threshold level use. Default value: 0. 00263 00264 * \endcode 00265 */ 00266 #define LSM6DS3_XG_CTRL4_C 0x13 00267 00268 /** 00269 * @brief Control Register 4 00270 * \code 00271 * Read/write 00272 * Default value: 0x00 00273 * [7:4] This bit must be set to �0� for the correct operation of the device 00274 * [3:2] ST_G[1:0]: Angular rate sensor Self Test Enable. Default value: 00 00275 * [1:0] ST_XL[1:0]: Linear acceleration sensor Self Test Enable. Default value: 00 00276 * \endcode 00277 */ 00278 #define LSM6DS3_XG_CTRL5_C 0x14 00279 00280 00281 /** 00282 * @brief Control Register 10 00283 * \code 00284 * Read/write 00285 * Default value: 0x38 00286 * [7:6] These bits must be set to �0� for the correct operation of the device 00287 * [5] Zen_G: Gyroscope�s Z-axis output enable. Default value: 1 00288 * [4] Yen_G: Gyroscope�s Y-axis output enable. Default value: 1 00289 * [3] Xen_G: Gyroscope�s X-axis output enable. Default value: 1 00290 * [2] FUNC_EN: Enable embedded functionalities (pedometer, tilt and significant motion) . Default value: 0 00291 * [1] PEDO_RST_STEP: Reset pedometer step counter . Default value: 0 00292 * [0] SIGN_MOTION_EN: Enable significant motion function. For a correct functionality of significant motion function, TILT_EN bit in FUNC_SRC (53h) register must be set to 1 . Default value: 1 00293 * \endcode 00294 */ 00295 #define LSM6DS3_XG_CTRL10_C 0x19 00296 00297 00298 /** 00299 * @brief Sensor hub Master config Register 00300 * \code 00301 * Read/write 00302 * Default value: 0x00 00303 * [7] DRDY_ON_INT1:Manage the DRDY signal on INT1 pad. Default: 0 00304 * [6] DATA_VALID_SEL_FIFO: Selection of FIFO data-valid signal. Default value: 0 00305 * [5] This bit must be set to �0� for the correct operation of the device 00306 * [4] START_CONFIG: Sensor Hub trigger signal selection. Default value: 0 00307 * [3] PULL_UP_EN: Auxiliary I2C pull-up. Default value: 0 00308 * [2] PASS_THROUGH_MODE: I2C interface pass-through. Default value: 0 00309 * [1] IRON_EN:Enable soft iron correction algorithm for magnetometer. Default value: 0. 00310 * [0] MASTER_ON: Sensor Hub I2C master enable. Default: 0 00311 * \endcode 00312 */ 00313 #define LSM6DS3_XG_MASTER_CONFIG 0x1A 00314 00315 00316 /** 00317 * @brief Wake up interrupt source register 00318 * \code 00319 * Read 00320 * Default value: output 00321 * [7:6] This bit must be set to �0� for the correct operation of the device 00322 * [5] FF_IA: Free fall event detection status. Default: 0 00323 * [4] SLEEP_STATE_IA: Sleep event status. Default value: 0 00324 * [3] WU_IA: Wake up event detection status. Default 00325 * [2] X_WU: detection status on X axis. Default value: 0 00326 * [1] Y_WU: detection status on Y axis. Default value: 0 00327 * [0] Z_WU: detection status on Z axis. Default value: 0 00328 * \endcode 00329 */ 00330 #define LSM6DS3_XG_WAKE_UP_SRC 0x1B 00331 00332 /** 00333 * @brief Tap source register 00334 * \code 00335 * Read 00336 * Default value: output 00337 * [7] This bit must be set to �0� for the correct operation of the device 00338 * [6] TAP_IA: Tap event detection status. Default: 0 00339 * [5] SINGLE_TAP: Single tap event status. Default value: 0 00340 * [4] DOUBLE_TAP: Double tap event detection status. Default value: 0 00341 * [3] TAP_SIGN: Sign of acceleration detected by tap event. Default: 0 00342 * [2] X_TAP: Tap event detection status on X axis. Default value: 0 00343 * [1] Y_TAP: Tap event detection status on Y axis. Default value: 0 00344 * [0] Z_TAP: Tap event detection status on Z axis. Default value: 0 00345 * \endcode 00346 */ 00347 #define LSM6DS3_XG_TAP_SRC 0x1C 00348 00349 /** 00350 * @brief Portrait, landscape face-up and face-down source register 00351 * \code 00352 * Read 00353 * Default value: output 00354 * [7] This bit must be set to �0� for the correct operation of the device 00355 * [6] D6D_IA: Interrupt active for change position portrait, landscape, face-up, face-down. Default value: 0 00356 * [5] ZH: Z-axis high event (over-threshold). Default value: 0 00357 * [4] ZL: Z-axis low event (under-threshold). Default value: 0 00358 * [5] YH: Y-axis high event (over-threshold). Default value: 0 00359 * [4] YL: Y-axis low event (under-threshold). Default value: 0 00360 * [5] X_H: X-axis high event (over-threshold). Default value: 0 00361 * [4] X_L: X-axis low event (under-threshold). Default value: 0 00362 * \endcode 00363 */ 00364 #define LSM6DS3_XG_D6D_SRC 0x1D 00365 00366 /** 00367 * @brief Status register 00368 * \code 00369 * Read 00370 * Default value: output 00371 * [7:4] No meaning set 00372 * [3] EV_BOOT: Boot running flag signal. Default value: 0 00373 * [2] No meaning set 00374 * [1] GDA: Gyroscope new data avaialble. Default value: 0 00375 * [0] XLDA: Accelerometer new data avaialble. Default value: 0 00376 * \endcode 00377 */ 00378 #define LSM6DS3_XG_STATUS_REG 0x1E 00379 00380 /** 00381 * @brief FIFO status control register 00382 * \code 00383 * Read 00384 * Default value: 0x00 00385 * [7:0] DIFF_FIFO_[7:0]: Number of unread words (16 bit axes) stored in FIFO . For a complete number of unread samples, consider DIFF_FIFO [11:8] in FIFO_STATUS2 (3Bh) 00386 * \endcode 00387 */ 00388 #define LSM6DS3_XG_FIFO_STATUS1 0x3A 00389 00390 /** 00391 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00392 * \code 00393 * Read 00394 * Default value: 0x00 00395 * [7] FTH FIFO watermark status. Deafult value: 0 00396 * [6] OVER_RUN: FIFO overrun status. Default value: 0 00397 * [5] FIFO_FULL: FIFO full status. Default value: 0 00398 * [5] FIFO_EMPTY: FIFO empty bit. Default value: 0; 0: FIFO contains data; 1: FIFO is empty 00399 * [3:0] DIFF_FIFO_[11:8] Number of unread words (16 bit axes) stored in FIFO : For a complete number of unread samples, consider DIFF_FIFO [11:8] in FIFO_STATUS1 (3Ah) 00400 * \endcode 00401 */ 00402 #define LSM6DS3_XG_FIFO_STATUS2 0x3B 00403 00404 /** 00405 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0 00406 * \code 00407 * Read 00408 * Default value: 0x00 00409 * [7:0] FIFO_PATTERN_[7:0] : Word of recursive pattern read at the next reading 00410 * \endcode 00411 */ 00412 #define LSM6DS3_XG_FIFO_STATUS3 0x3C 00413 00414 /** 00415 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0 00416 * \code 00417 * Read 00418 * Default value: 0x00 00419 * [1:0] FIFO_PATTERN_[9:8] : Word of recursive pattern read at the next reading 00420 * \endcode 00421 */ 00422 #define LSM6DS3_XG_FIFO_STATUS4 0x3D 00423 00424 /** 00425 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00426 * \code 00427 * Read 00428 * Default value: 0x00 00429 * [4:0] FIFO_PATTERN_[9:8] : Word of recursive pattern read at the next reading 00430 * \endcode 00431 */ 00432 #define LSM6DS3_XG_FIFO_STATUS4 0x3D 00433 00434 /** 00435 * @brief FIFO data output register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00436 * \code 00437 * Read 00438 * Default value: 0x00 00439 * [7:0] DATA_OUT_FIFO_L_[7:0]: FIFO data output (First byte) 00440 * \endcode 00441 */ 00442 #define LSM6DS3_XG_FIFO_DATA_OUT_L 0x3E 00443 00444 /** 00445 * @brief FIFO data output register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00446 * \code 00447 * Read 00448 * Default value: 0x00 00449 * [7:0] DATA_OUT_FIFO_H_[7:0]: FIFO data output (second byte) 00450 * \endcode 00451 */ 00452 #define LSM6DS3_XG_FIFO_DATA_OUT_H 0x3F 00453 00454 /** 00455 * @brief Time stamp first byte data output register (r). The value is expressed as 24 bit and the bit resolution is defined by setting value in WAKE_UP_DUR (5Ch). 00456 * \code 00457 * Read 00458 * Default value: output 00459 * [7:0] TIMESTAMP0_[7:0]: FIFO first byte data output 00460 * \endcode 00461 */ 00462 #define LSM6DS3_XG_TIMESTAMP0_REG 0x40 00463 00464 /** 00465 * @brief Time stamp second byte data output register (r). The value is expressed as 24 bit and the bit resolution is defined by setting value in WAKE_UP_DUR (5Ch). 00466 * \code 00467 * Read 00468 * Default value: output 00469 * [7:0] TIMESTAMP1_[7:0]: FIFO second byte data output 00470 * \endcode 00471 */ 00472 #define LSM6DS3_XG_TIMESTAMP1_REG 0x41 00473 00474 /** 00475 * @brief Time stamp third byte data output register (r). The value is expressed as 24 bit and the bit resolution is defined by setting value in WAKE_UP_DUR (5Ch). 00476 * \code 00477 * Read 00478 * Default value: output 00479 * [7:0] TIMESTAMP2_[7:0]: FIFO third byte data output 00480 * \endcode 00481 */ 00482 #define LSM6DS3_XG_TIMESTAMP2_REG 0x42 00483 00484 /** 00485 * @brief Step counter output register (r). 00486 * \code 00487 * Read 00488 * Default value: output 00489 * [7:0] STEP_COUNTER_L_[7:0]: Step counter output (LSbyte) 00490 * \endcode 00491 */ 00492 #define LSM6DS3_XG_STEP_COUNTER_L 0x4B 00493 00494 /** 00495 * @brief Step counter output register (r). 00496 * \code 00497 * Read 00498 * Default value: output 00499 * [7:0] STEP_COUNTER_H_[7:0]: Step counter output (MSbyte) 00500 * \endcode 00501 */ 00502 #define LSM6DS3_XG_STEP_COUNTER_H 0x4C 00503 00504 /** 00505 * @brief Significant motion, tilt, step detector, soft iron and sensor hub interrupt source register 00506 * \code 00507 * Read 00508 * Default value: output 00509 * [7] This bit must be set to �0� for the correct operation of the device 00510 * [6] SIGN_MOTION_IA: Significant motion event detection status. Default value: 0 00511 * [5] TILT_IA: Tilt event detection status. Default value: 0 00512 * [5] STEP_DETECTED: Step detector event detection status. Default value: 0 00513 * [3:2] This bit must be set to �0� for the correct operation of the device 00514 * [1] SI_END_OP:Soft iron calculation status. Default value: 0 00515 * [0] SENSORHUB_END_OP:Senso hub communication status. Default value: 0 00516 * \endcode 00517 */ 00518 #define LSM6DS3_XG_FUNC_SRC 0x53 00519 00520 /** 00521 * @brief Time stamp, pedometer, tilt, filtering, and tap recognition functions configuration register 00522 * \code 00523 * Read/write 00524 * Default value: 0x00 00525 * [7] TIMER_EN: Time stamp count enable, output data are collected in TIMESTAMP0_REG (40h), TIMESTAMP1_REG (41h), TIMESTAMP2_REG (42h) register. Default: 0 00526 * [6] PEDO_EN: Pedometer algorithm enable(1). Default value: 0 00527 * [5] TILT_EN: Tilt calculation enable.(2) Default value: 0 00528 * [4] This bit must be set to �0� for the correct operation of the device 00529 * [3] TAP_X_EN: Enable X direction in tap recognition. Default value: 0 00530 * [2] TAP_Y_EN: Enable Z direction in tap recognition. Default value: 0 00531 * [1] TAP_Z_EN: Enable Z direction in tap recognition. Default value: 0 00532 * [0] LIR: Relatch of the time stamp, pedometer, tilt, filtering, and tap recognition functions routed to PINs. 00533 * \endcode 00534 */ 00535 #define LSM6DS3_XG_TAP_CFG 0x58 00536 00537 /** 00538 * @brief Portrait/landscape position and tap function threshold register 00539 * \code 00540 * Read/write 00541 * Default value: 0x00 00542 * [7] This bit must be set to �0� for the correct operation of the device 00543 * [6:5] SIXD_THS[1:0]: Threshold for D6D function. Default value: 00 00544 * [4:0] TAP_THS[4:0]: Threshold for tap recognition. Default value: 0000 00545 * \endcode 00546 */ 00547 #define LSM6DS3_XG_TAP_THS_6D 0x59 00548 00549 /** 00550 * @brief Tap recognition function setting register (r/w) 00551 * \code 00552 * Read/write 00553 * Default value: 0x00 00554 * [7:4] DUR[3:0]: Duration of maximum time gap for double tap recognition. Default: 0000 00555 * [3:2] QUIET[1:0]: Expected quiet time after a tap detection. Default value: 00 00556 * [1:0] SHOCK[1:0]: Maximum duration of over-threshold event. Default value: 00 00557 * \endcode 00558 */ 00559 #define LSM6DS3_XG_INT_DUR2 0x5A 00560 00561 /** 00562 * @brief Tap recognition function setting register 00563 * \code 00564 * Read/write 00565 * Default value: 0x00 00566 * [7] SINGLE_DOUBLE_TAP: Single/double tap event detection. Default: 0 00567 * [6] INACTIVITY: Inactivity event enable. Default value: 0 00568 * [5:0] WK_THS[5:0]:Threshold for wake-up. Default value: 0000 00569 * \endcode 00570 */ 00571 #define LSM6DS3_XG_WAKE_UP_THS 0x5B 00572 00573 /** 00574 * @brief Free-fall, wake-up, time stamp and sleep mode functions duration setting register (r/w). 00575 * \code 00576 * Read/write 00577 * Default value: 0x00 00578 * [7] FF_DUR5:Free fall duration event. Default: 0 00579 * [6:5] WAKE_DUR[1:0]: Wake up duration event. Default: 00 00580 * [4] TIMER_HR: Time stamp register resolution setting(1). Default value: 0 00581 * [3:0] SLEEP_DUR[3:0] : Duration to go in sleep mode. Default value: 0000 00582 * \endcode 00583 */ 00584 #define LSM6DS3_XG_WAKE_UP_DUR 0x5C 00585 00586 /** 00587 * @brief Free-fall function duration setting register 00588 * \code 00589 * Read/write 00590 * Default value: 0x00 00591 * [7:3] FF_DUR[4:0]: Free fall duration event. Default: 0. For the complete configuration of the free fall duration, refer to FF_DUR5 in WAKE_UP_DUR (5Ch) configuration 00592 * [2:0] FF_THS[2:0]: Free fall threshold setting. Default: 000. 00593 * \endcode 00594 */ 00595 #define LSM6DS3_XG_WAKE_FREE_FALL 0x5D 00596 00597 /** 00598 * @brief Functions routing on INT1 register 00599 * \code 00600 * Read/write 00601 * Default value: 0x00 00602 * [7] INT1_INACT_STATE: Routing on INT1 of inactivity mode. Default: 0 00603 * [6] INT1_SINGLE_TAP: Single tap recognition routing on INT1. Default: 0 00604 * [5] INT1_WU: Routing of wake-up event on INT1. Default value: 0 00605 * [4] INT1_FF: Routing of free-fall event on INT1. Default value: 0 00606 * [3] INT1_TAP: Routing of tap event on INT1. Default value: 0 00607 * [2] INT1_6D: Routing of 6D event on INT1. Default value: 0 00608 * [1] INT1_TILT: Routing of tilt event on INT1. Default value: 0 00609 * [0] INT1_TIMER: Routing of end counter event of timer on INT1. Default value: 0 00610 * \endcode 00611 */ 00612 #define LSM6DS3_XG_MD1_CFG 0x5E 00613 00614 /** 00615 * @brief Functions routing on INT2 register 00616 * \code 00617 * Read/write 00618 * Default value: 0x00 00619 * [7] INT2_INACT_STATE: Routing on INT1 of inactivity mode. Default: 0 00620 * [6] INT2_SINGLE_TAP: Single tap recognition routing on INT1. Default: 0 00621 * [5] INT2_WU: Routing of wake-up event on INT1. Default value: 0 00622 * [4] INT2_FF: Routing of free-fall event on INT1. Default value: 0 00623 * [3] INT2_TAP: Routing of tap event on INT1. Default value: 0 00624 * [2] INT2_6D: Routing of 6D event on INT1. Default value: 0 00625 * [1] INT2_TILT: Routing of tilt event on INT1. Default value: 0 00626 * [0] INT2_TIMER: Routing of end counter event of timer on INT1. Default value: 0 00627 * \endcode 00628 */ 00629 #define LSM6DS3_XG_MD2_CFG 0x5F 00630 00631 /***************************************** SENSORHUB REGISTERS ********************************************/ 00632 00633 /** 00634 * @brief SENSORHUB REGISTER 1 : SLV0 first external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00635 * \code 00636 * Read 00637 * Default value: 0x00 00638 * [7:0] SHUB1[7:0]: SLV0 first external sensor, first byte of the first axis. 00639 * \endcode 00640 */ 00641 #define LSM6DS3_XG_SENSORHUB1_REG 0x2E 00642 00643 /** 00644 * @brief SENSORHUB REGISTER 2 : SLV0 first external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00645 * \code 00646 * Read 00647 * Default value: 0x00 00648 * [7:0] SHUB2[7:0]: SLV0 first external sensor, second byte of the first axis. 00649 * \endcode 00650 */ 00651 #define LSM6DS3_XG_SENSORHUB2_REG 0x2F 00652 00653 /** 00654 * @brief SENSORHUB REGISTER 3 : SLV0 first external sensor, second axis output register (r). The value is expressed as 16bit word in two�s complement 00655 * \code 00656 * Read 00657 * Default value: 0x00 00658 * [7:0] SHUB3[7:0]: SLV0 first external sensor, first byte of the second axis. 00659 * \endcode 00660 */ 00661 #define LSM6DS3_XG_SENSORHUB3_REG 0x30 00662 00663 /** 00664 * @brief SENSORHUB REGISTER 4 : SLV0 first external sensor, second axis output register (r). The value is expressed as 16bit word in two�s complement 00665 * \code 00666 * Read 00667 * Default value: 0x00 00668 * [7:0] SHUB4[7:0]: SLV0 first external sensor, second byte of the second axis. 00669 * \endcode 00670 */ 00671 #define LSM6DS3_XG_SENSORHUB4_REG 0x31 00672 00673 /** 00674 * @brief SENSORHUB REGISTER 5 : SLV0 first external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00675 * \code 00676 * Read 00677 * Default value: 0x00 00678 * [7:0] SHUB5[7:0]: SLV0 first external sensor, second byte of the second axis. 00679 * \endcode 00680 */ 00681 #define LSM6DS3_XG_SENSORHUB5_REG 0x32 00682 00683 /** 00684 * @brief SENSORHUB REGISTER 6 : SLV0 first external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00685 * \code 00686 * Read 00687 * Default value: 0x00 00688 * [7:0] SHUB6[7:0]: SLV0 first external sensor, second byte of the third axis 00689 * \endcode 00690 */ 00691 #define LSM6DS3_XG_SENSORHUB6_REG 0x33 00692 00693 /** 00694 * @brief SENSORHUB REGISTER 7 : SLV1 second external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00695 * \code 00696 * Read 00697 * Default value: 0x00 00698 * [7:0] SHUB7[7:0]: SLV1 second external sensor, first byte of the first axis. 00699 * \endcode 00700 */ 00701 #define LSM6DS3_XG_SENSORHUB7_REG 0x34 00702 00703 /** 00704 * @brief SENSORHUB REGISTER 8 : SLV1 second external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00705 * \code 00706 * Read 00707 * Default value: 0x00 00708 * [7:0] SHUB8[7:0]: SLV1 second external sensor, second byte of the first axis. 00709 * \endcode 00710 */ 00711 #define LSM6DS3_XG_SENSORHUB8_REG 0x35 00712 00713 /** 00714 * @brief SENSORHUB REGISTER 9 : SLV1 second external sensor,, second axis output register (r). The value is expressed as 16bit word in two�s complement 00715 * \code 00716 * Read 00717 * Default value: 0x00 00718 * [7:0] SHUB9[7:0]: SLV1 second external sensor, first byte of the second axis. 00719 * \endcode 00720 */ 00721 #define LSM6DS3_XG_SENSORHUB9_REG 0x36 00722 00723 /** 00724 * @brief SLV1 second external sensor, second axis output register (r). The value is expressed as 16bit word in two�s complement 00725 * \code 00726 * Read 00727 * Default value: 0x00 00728 * [7:0] SHUB10[7:0]: SLV1 second external sensor, second byte of the second axis. 00729 * \endcode 00730 */ 00731 #define LSM6DS3_XG_SENSORHUB10_REG 0x37 00732 00733 /** 00734 * @brief SLV1 second external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00735 * \code 00736 * Read 00737 * Default value: 0x00 00738 * [7:0] SHUB11[7:0]: SLV1 second external sensor, first byte of the third axis. 00739 * \endcode 00740 */ 00741 #define LSM6DS3_XG_SENSORHUB11_REG 0x38 00742 00743 /** 00744 * @brief SLV1 second external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00745 * \code 00746 * Read 00747 * Default value: 0x00 00748 * [7:0] SHUB12[7:0]: SLV1 second external sensor, second byte of the third axis. 00749 * \endcode 00750 */ 00751 #define LSM6DS3_XG_SENSORHUB12_REG 0x39 00752 00753 00754 00755 00756 /***************************************** GYROSCOPE REGISTERS ********************************************/ 00757 00758 /** 00759 * @brief Angular rate sensor Control Register 2 00760 * \code 00761 * Read/write 00762 * Default value: 0x00 00763 * [7:4] ODR_G[3:0]: Gyroscope output data rate selection 00764 * [3:2] FS_G[1-0]: Gyroscope full-scale selection 00765 * [1] FS_125: Gyroscope full-scale at 125 dps 00766 * [0] This bit must be set to �0� for the correct operation of the device 00767 * \endcode 00768 */ 00769 #define LSM6DS3_XG_CTRL2_G 0x11 00770 00771 00772 /** 00773 * @brief Angular rate sensor Control Register 6 00774 * \code 00775 * Read/write 00776 * Default value: 0x00 00777 * [7] TRIG_EN: Data edge sensitive trigger Enable. Default value: 0 00778 * [6] LVLen: Data level sensitive trigger Enable. Default value: 0 00779 * [5] LVL2en: Level sensitive latched Enable. Default value: 0 00780 * [4] XL_H_MODE: High Performance operating mode disable for accelerometer(1). Default value: 0 00781 * [3:0] This bit must be set to �0� for the correct operation of the device 00782 * \endcode 00783 */ 00784 #define LSM6DS3_XG_CTRL6_G 0x15 00785 00786 00787 /** 00788 * @brief Angular rate sensor Control Register 7 00789 * \code 00790 * Read/write 00791 * Default value: 0x00 00792 * [7] G_H_MODE: High Performance operating mode disable for Gyroscope(1) . Default: 0 00793 * [6] HP_EN: High Pass filter Enable. Default Value: 0 00794 * [5:4] HPCF_G[1:0]: Gyroscope High Pass filter Cut Off frequency selection. Default value: 00 00795 * [3:0] This bit must be set to �0� for the correct operation of the device 00796 * \endcode 00797 */ 00798 #define LSM6DS3_XG_CTRL7_G 0x16 00799 00800 /** 00801 * @brief Gyroscope data (LSB) 00802 * \code 00803 * Read 00804 * \endcode 00805 */ 00806 #define LSM6DS3_XG_OUT_X_L_G 0x22 00807 00808 00809 /** 00810 * @brief Gyroscope data (MSB) 00811 * \code 00812 * Read 00813 * \endcode 00814 */ 00815 #define LSM6DS3_XG_OUT_X_H_G 0x23 00816 00817 00818 /** 00819 * @brief Gyroscope data (LSB) 00820 * \code 00821 * Read 00822 * \endcode 00823 */ 00824 #define LSM6DS3_XG_OUT_Y_L_G 0x24 00825 00826 00827 /** 00828 * @brief Gyroscope data (MSB) 00829 * \code 00830 * Read 00831 * \endcode 00832 */ 00833 #define LSM6DS3_XG_OUT_Y_H_G 0x25 00834 00835 00836 /** 00837 * @brief Gyroscope data (LSB) 00838 * \code 00839 * Read 00840 * \endcode 00841 */ 00842 #define LSM6DS3_XG_OUT_Z_L_G 0x26 00843 00844 00845 /** 00846 * @brief Gyroscope data (MSB) 00847 * \code 00848 * Read 00849 * \endcode 00850 */ 00851 #define LSM6DS3_XG_OUT_Z_H_G 0x27 00852 00853 00854 00855 /*************************************** ACCELEROMETER REGISTERS *******************************************/ 00856 00857 /** 00858 * @brief Linear acceleration sensor Control Register 1 00859 * \code 00860 * Read/write 00861 * Default value: 0x00 00862 * [7:4] ODR_XL3-0: Accelerometer Output data rate and power mode selection 00863 * [3:2] FS_XL1-0: Accelerometer full-scale selection 00864 * [1:0] BW_XL1-0: Anti-aliasing filter bandwidth selection 00865 * \endcode 00866 */ 00867 #define LSM6DS3_XG_CTRL1_XL 0x10 00868 00869 /** 00870 * @brief XL sensor Control Register 8 00871 * \code 00872 * Read/write 00873 * Default value: 0x00 00874 * [7:3] This bit must be set to �0� for the correct operation of the device 00875 * [2] SLOPE_FDS: Enable HP filter on output registers and FIFO. Default value: 0 00876 * [1:0] This bit must be set to �0� for the correct operation of the device 00877 * \endcode 00878 */ 00879 #define LSM6DS3_XG_CTRL8_XL 0x17 00880 00881 /** 00882 * @brief Linear acceleration sensor Control Register 9 00883 * \code 00884 * Read/write 00885 * Default value: 0x38 00886 * [7:6] These bits must be set to �0� for the correct operation of the device 00887 * [5] Zen_XL: Accelerometers�s Z-axis output enable 00888 * [4] Yen_XL: Accelerometers�s Y-axis output enable 00889 * [3] Xen_XL: Accelerometers�s X-axis output enable 00890 * [2:0] These bits must be set to �0� for the correct operation of the device 00891 * \endcode 00892 */ 00893 #define LSM6DS3_XG_CTRL9_XL 0x18 00894 00895 00896 /** 00897 * @brief Accelerometer data (LSB) 00898 * \code 00899 * Read 00900 * \endcode 00901 */ 00902 #define LSM6DS3_XG_OUT_X_L_XL 0x28 00903 00904 00905 /** 00906 * @brief Accelerometer data (MSB) 00907 * \code 00908 * Read 00909 * \endcode 00910 */ 00911 #define LSM6DS3_XG_OUT_X_H_XL 0x29 00912 00913 00914 /** 00915 * @brief Accelerometer data (LSB) 00916 * \code 00917 * Read 00918 * \endcode 00919 */ 00920 #define LSM6DS3_XG_OUT_Y_L_XL 0x2A 00921 00922 00923 /** 00924 * @brief Accelerometer data (MSB) 00925 * \code 00926 * Read 00927 * \endcode 00928 */ 00929 #define LSM6DS3_XG_OUT_Y_H_XL 0x2B 00930 00931 00932 /** 00933 * @brief Accelerometer data (LSB) 00934 * \code 00935 * Read 00936 * \endcode 00937 */ 00938 #define LSM6DS3_XG_OUT_Z_L_XL 0x2C 00939 00940 00941 /** 00942 * @brief Accelerometer data (MSB) 00943 * \code 00944 * Read 00945 * \endcode 00946 */ 00947 #define LSM6DS3_XG_OUT_Z_H_XL 0x2D 00948 00949 /******************************************************************************/ 00950 /************* END ACCELEROMETER AND GYROSCOPE REGISTER MAPPING **************/ 00951 /******************************************************************************/ 00952 00953 00954 /************************************** COMMON REGISTERS VALUE *******************************************/ 00955 00956 /** 00957 * @brief Device Address 00958 */ 00959 #define LSM6DS3_ADDRESS_LOW 0xD4 // SAD[0] = 0 00960 #define LSM6DS3_ADDRESS_HIGH 0xD6 // SAD[0] = 1 00961 #define LSM6DS3_XG_MEMS_ADDRESS LSM6DS3_ADDRESS_LOW // SAD[0] = 0 00962 00963 00964 /** 00965 * @brief Device Identifier. Default value of the WHO_AM_I register. 00966 */ 00967 #define I_AM_LSM6DS3_XG ((uint8_t)0x69) 00968 00969 00970 /** 00971 * @brief Register address automatically incremented during a multiple byte 00972 * access with a serial interface (I2C or SPI). Default value of the 00973 * LSM6DS3_XG_CTRL3_C register. 00974 */ 00975 #define LSM6DS3_XG_IF_INC ((uint8_t)0x04) 00976 00977 #define LSM6DS3_XG_IF_INC_MASK ((uint8_t)0x04) 00978 00979 /** @defgroup LSM6DS3_XG_FIFO_Output_Data_Rate_Selection_FIFO_CTRL5 LSM6DS3_XG_FIFO_Output_Data_Rate_Selection_FIFO_CTRL5 00980 * @{ 00981 */ 00982 #define LSM6DS3_XG_FIFO_ODR_NA ((uint8_t)0x00) /*!< FIFO ODR NA */ 00983 #define LSM6DS3_XG_FIFO_ODR_10HZ ((uint8_t)0x08) /*!< FIFO ODR 10Hz */ 00984 #define LSM6DS3_XG_FIFO_ODR_25HZ ((uint8_t)0x10) /*!< FIFO ODR 25Hz */ 00985 #define LSM6DS3_XG_FIFO_ODR_50HZ ((uint8_t)0x18) /*!< FIFO ODR 50Hz */ 00986 #define LSM6DS3_XG_FIFO_ODR_100HZ ((uint8_t)0x20) /*!< FIFO ODR 100Hz */ 00987 #define LSM6DS3_XG_FIFO_ODR_200HZ ((uint8_t)0x28) /*!< FIFO ODR 200Hz */ 00988 #define LSM6DS3_XG_FIFO_ODR_400HZ ((uint8_t)0x30) /*!< FIFO ODR 400Hz */ 00989 #define LSM6DS3_XG_FIFO_ODR_800HZ ((uint8_t)0x38) /*!< FIFO ODR 800Hz */ 00990 #define LSM6DS3_XG_FIFO_ODR_1600HZ ((uint8_t)0x40) /*!< FIFO ODR 1600Hz */ 00991 #define LSM6DS3_XG_FIFO_ODR_3300HZ ((uint8_t)0x48) /*!< FIFO ODR 3300Hz */ 00992 #define LSM6DS3_XG_FIFO_ODR_6600HZ ((uint8_t)0x50) /*!< FIFO ODR 6600Hz */ 00993 00994 #define LSM6DS3_XG_FIFO_ODR_MASK ((uint8_t)0x78) 00995 /** 00996 * @} 00997 */ 00998 00999 /** @defgroup LSM6DS3_XG_FIFO_Mode_Selection_FIFO_CTRL5 LSM6DS3_XG_FIFO_Mode_Selection_FIFO_CTRL5 01000 * @{ 01001 */ 01002 #define LSM6DS3_XG_FIFO_MODE_BYPASS ((uint8_t)0x00) /*!< BYPASS Mode. FIFO turned off */ 01003 #define LSM6DS3_XG_FIFO_MODE_FIFO ((uint8_t)0x01) /*!< FIFO Mode. Stop collecting data when FIFO is full */ 01004 #define LSM6DS3_XG_FIFO_MODE_CONTINUOUS_THEN_FIFO ((uint8_t)0x03) /*!< CONTINUOUS mode until trigger is deasserted, then FIFO mode */ 01005 #define LSM6DS3_XG_FIFO_MODE_BYPASS_THEN_CONTINUOUS ((uint8_t)0x04) /*!< BYPASS mode until trigger is deasserted, then CONTINUOUS mode */ 01006 #define LSM6DS3_XG_FIFO_MODE_CONTINUOUS_OVERWRITE ((uint8_t)0x05) /*!< CONTINUOUS mode. If the FIFO is full the new sample overwrite the older one */ 01007 01008 #define LSM6DS3_XG_FIFO_MODE_MASK ((uint8_t)0x07) 01009 /** 01010 * @} 01011 */ 01012 01013 01014 /************************************** GYROSCOPE REGISTERS VALUE *******************************************/ 01015 01016 01017 /** @addtogroup LSM6DS3_XG_Gyroscope_Output_Data_Rate_Selection_CTRL_REG1_G LSM6DS3_XG_Gyroscope_Output_Data_Rate_Selection_CTRL_REG1_G 01018 * @{ 01019 */ 01020 #define LSM6DS3_G_ODR_PD ((uint8_t)0x00) /*!< Output Data Rate: Power-down*/ 01021 #define LSM6DS3_G_ODR_13HZ ((uint8_t)0x10) /*!< Output Data Rate: 13 Hz*/ 01022 #define LSM6DS3_G_ODR_26HZ ((uint8_t)0x20) /*!< Output Data Rate: 26 Hz*/ 01023 #define LSM6DS3_G_ODR_52HZ ((uint8_t)0x30) /*!< Output Data Rate: 52 Hz */ 01024 #define LSM6DS3_G_ODR_104HZ ((uint8_t)0x40) /*!< Output Data Rate: 104 Hz */ 01025 #define LSM6DS3_G_ODR_208HZ ((uint8_t)0x50) /*!< Output Data Rate: 208 Hz */ 01026 #define LSM6DS3_G_ODR_416HZ ((uint8_t)0x60) /*!< Output Data Rate: 416 Hz */ 01027 #define LSM6DS3_G_ODR_833HZ ((uint8_t)0x70) /*!< Output Data Rate: 833 Hz */ 01028 #define LSM6DS3_G_ODR_1660HZ ((uint8_t)0x80) /*!< Output Data Rate: 1.66 kHz */ 01029 01030 #define LSM6DS3_G_ODR_MASK ((uint8_t)0xF0) 01031 01032 /** 01033 * @} 01034 */ 01035 01036 01037 /** @addtogroup LSM6DS3_XG_Gyroscope_Full_Scale_Selection_CTRL2_G LSM6DS3_XG_Gyroscope_Full_Scale_Selection_CTRL2_G 01038 * @{ 01039 */ 01040 #define LSM6DS3_G_FS_125_DISABLE ((uint8_t)0x00) /*!< Full scale: 125 dps enable: disable */ 01041 #define LSM6DS3_G_FS_125_ENABLE ((uint8_t)0x02) /*!< Full scale: 125 dps enable: enable */ 01042 01043 #define LSM6DS3_G_FS_125_MASK ((uint8_t)0x02) 01044 01045 #define LSM6DS3_G_FS_245 ((uint8_t)0x00) /*!< Full scale: 245 dps*/ 01046 #define LSM6DS3_G_FS_500 ((uint8_t)0x04) /*!< Full scale: 500 dps */ 01047 #define LSM6DS3_G_FS_1000 ((uint8_t)0x08) /*!< Full scale: 1000 dps */ 01048 #define LSM6DS3_G_FS_2000 ((uint8_t)0x0C) /*!< Full scale: 2000 dps */ 01049 01050 #define LSM6DS3_G_FS_MASK ((uint8_t)0x0C) 01051 01052 /** 01053 * @} 01054 */ 01055 01056 01057 /** @addtogroup LSM6DS3_XG_Gyroscope_Z_Axis_Output_Enable_Selection_CTRL10_C LSM6DS3_XG_Gyroscope_Z_Axis_Output_Enable_Selection_CTRL10_C 01058 * @{ 01059 */ 01060 #define LSM6DS3_G_ZEN_DISABLE ((uint8_t)0x00) /*!< Gyroscope�s Z-axis output enable: disable */ 01061 #define LSM6DS3_G_ZEN_ENABLE ((uint8_t)0x20) /*!< Gyroscope�s Z-axis output enable: enable */ 01062 01063 #define LSM6DS3_G_ZEN_MASK ((uint8_t)0x20) 01064 01065 /** 01066 * @} 01067 */ 01068 01069 01070 /** @addtogroup LSM6DS3_XG_Gyroscope_Y_Axis_Output_Enable_Selection_CTRL10_C LSM6DS3_XG_Gyroscope_Y_Axis_Output_Enable_Selection_CTRL10_C 01071 * @{ 01072 */ 01073 #define LSM6DS3_G_YEN_DISABLE ((uint8_t)0x00) /*!< Gyroscope�s Y-axis output enable: disable */ 01074 #define LSM6DS3_G_YEN_ENABLE ((uint8_t)0x10) /*!< Gyroscope�s Y-axis output enable: enable */ 01075 01076 #define LSM6DS3_G_YEN_MASK ((uint8_t)0x10) 01077 01078 /** 01079 * @} 01080 */ 01081 01082 01083 /** @addtogroup LSM6DS3_XG_Gyroscope_X_Axis_Output_Enable_Selection_CTRL10_C LSM6DS3_XG_Gyroscope_X_Axis_Output_Enable_Selection_CTRL10_C 01084 * @{ 01085 */ 01086 #define LSM6DS3_G_XEN_DISABLE ((uint8_t)0x00) /*!< Gyroscope�s X-axis output enable: disable */ 01087 #define LSM6DS3_G_XEN_ENABLE ((uint8_t)0x08) /*!< Gyroscope�s X-axis output enable: enable */ 01088 01089 #define LSM6DS3_G_XEN_MASK ((uint8_t)0x08) 01090 01091 /** 01092 * @} 01093 */ 01094 01095 01096 /************************************ ACCELEROMETER REGISTERS VALUE *****************************************/ 01097 01098 /** @addtogroup LSM6DS3_XG_Accelerometer_Output_Data_Rate_Selection_CTRL1_XL LSM6DS3_XG_Accelerometer_Output_Data_Rate_Selection_CTRL1_XL 01099 * @{ 01100 */ 01101 #define LSM6DS3_XL_ODR_PD ((uint8_t)0x00) /*!< Output Data Rate: Power-down*/ 01102 #define LSM6DS3_XL_ODR_13HZ ((uint8_t)0x10) /*!< Output Data Rate: 13 Hz*/ 01103 #define LSM6DS3_XL_ODR_26HZ ((uint8_t)0x20) /*!< Output Data Rate: 26 Hz*/ 01104 #define LSM6DS3_XL_ODR_52HZ ((uint8_t)0x30) /*!< Output Data Rate: 52 Hz */ 01105 #define LSM6DS3_XL_ODR_104HZ ((uint8_t)0x40) /*!< Output Data Rate: 104 Hz */ 01106 #define LSM6DS3_XL_ODR_208HZ ((uint8_t)0x50) /*!< Output Data Rate: 208 Hz */ 01107 #define LSM6DS3_XL_ODR_416HZ ((uint8_t)0x60) /*!< Output Data Rate: 416 Hz */ 01108 #define LSM6DS3_XL_ODR_833HZ ((uint8_t)0x70) /*!< Output Data Rate: 833 Hz */ 01109 #define LSM6DS3_XL_ODR_1660HZ ((uint8_t)0x80) /*!< Output Data Rate: 1.66 kHz */ 01110 #define LSM6DS3_XL_ODR_3330HZ ((uint8_t)0x90) /*!< Output Data Rate: 3.33 kHz */ 01111 #define LSM6DS3_XL_ODR_6660HZ ((uint8_t)0xA0) /*!< Output Data Rate: 6.66 kHz */ 01112 01113 #define LSM6DS3_XL_ODR_MASK ((uint8_t)0xF0) 01114 01115 /** 01116 * @} 01117 */ 01118 01119 01120 /** @addtogroup LSM6DS3_XG_Accelerometer_Full_Scale_Selection_CTRL1_XL LSM6DS3_XG_Accelerometer_Full_Scale_Selection_CTRL1_XL 01121 * @{ 01122 */ 01123 #define LSM6DS3_XL_FS_2G ((uint8_t)0x00) /*!< Full scale: +- 2g */ 01124 #define LSM6DS3_XL_FS_4G ((uint8_t)0x08) /*!< Full scale: +- 4g */ 01125 #define LSM6DS3_XL_FS_8G ((uint8_t)0x0C) /*!< Full scale: +- 8g */ 01126 #define LSM6DS3_XL_FS_16G ((uint8_t)0x04) /*!< Full scale: +- 16g */ 01127 01128 #define LSM6DS3_XL_FS_MASK ((uint8_t)0x0C) 01129 01130 /** 01131 * @} 01132 */ 01133 01134 01135 /** @addtogroup LSM6DS3_XG_Accelerometer_Anti_Aliasing_Filter_Bandwidth_Selection_CTRL1_XL LSM6DS3_XG_Accelerometer_Anti_Aliasing_Filter_Bandwidth_Selection_CTRL1_XL 01136 * @{ 01137 */ 01138 #define LSM6DS3_XL_BW_400HZ ((uint8_t)0x00) /*!< Anti-aliasing filter bandwidht: 400 Hz */ 01139 #define LSM6DS3_XL_BW_200HZ ((uint8_t)0x01) /*!< Anti-aliasing filter bandwidht: 200 Hz */ 01140 #define LSM6DS3_XL_BW_100HZ ((uint8_t)0x02) /*!< Anti-aliasing filter bandwidht: 100 Hz */ 01141 #define LSM6DS3_XL_BW_50HZ ((uint8_t)0x03) /*!< Anti-aliasing filter bandwidht: 50 Hz */ 01142 01143 #define LSM6DS3_XL_BW_MASK ((uint8_t)0x03) 01144 01145 /** 01146 * @} 01147 */ 01148 01149 01150 /** @addtogroup LSM6DS3_XG_Accelerometer_Z_Axis_Output_Enable_Selection_CTRL9_XL LSM6DS3_XG_Accelerometer_Z_Axis_Output_Enable_Selection_CTRL9_XL 01151 * @{ 01152 */ 01153 #define LSM6DS3_XL_ZEN_DISABLE ((uint8_t)0x00) /*!< Accelerometer�s Z-axis output enable: disable */ 01154 #define LSM6DS3_XL_ZEN_ENABLE ((uint8_t)0x20) /*!< Accelerometer�s Z-axis output enable: enable */ 01155 01156 #define LSM6DS3_XL_ZEN_MASK ((uint8_t)0x20) 01157 01158 /** 01159 * @} 01160 */ 01161 01162 01163 /** @addtogroup LSM6DS3_XG_Accelerometer_Y_Axis_Output_Enable_Selection_CTRL9_XL LSM6DS3_XG_Accelerometer_Y_Axis_Output_Enable_Selection_CTRL9_XL 01164 * @{ 01165 */ 01166 #define LSM6DS3_XL_YEN_DISABLE ((uint8_t)0x00) /*!< Accelerometer�s Y-axis output enable: disable */ 01167 #define LSM6DS3_XL_YEN_ENABLE ((uint8_t)0x10) /*!< Accelerometer�s Y-axis output enable: enable */ 01168 01169 #define LSM6DS3_XL_YEN_MASK ((uint8_t)0x10) 01170 01171 /** 01172 * @} 01173 */ 01174 01175 01176 /** @addtogroup LSM6DS3_XG_Accelerometer_X_Axis_Output_Enable_Selection_CTRL9_XL LSM6DS3_XG_Accelerometer_X_Axis_Output_Enable_Selection_CTRL9_XL 01177 * @{ 01178 */ 01179 #define LSM6DS3_XL_XEN_DISABLE ((uint8_t)0x00) /*!< Accelerometer�s X-axis output enable: disable */ 01180 #define LSM6DS3_XL_XEN_ENABLE ((uint8_t)0x08) /*!< Accelerometer�s X-axis output enable: enable */ 01181 01182 #define LSM6DS3_XL_XEN_MASK ((uint8_t)0x08) 01183 01184 /** 01185 * @} 01186 */ 01187 01188 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_DUR5_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_FF_DUR5_Selection_WAKE_UP_DUR 01189 * @{ 01190 */ 01191 #define LSM6DS3_XG_WAKE_UP_DUR_FF_DUR5_DEFAULT ((uint8_t)0x00) 01192 01193 #define LSM6DS3_XG_WAKE_UP_DUR_FF_DUR5_MASK ((uint8_t)0x80) 01194 /** 01195 * @} 01196 */ 01197 01198 /** @addtogroup LSM6DS3_XG_Accelerometer_WAKE_DUR_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_WAKE_DUR_Selection_WAKE_UP_DUR 01199 * @{ 01200 */ 01201 #define LSM6DS3_XG_WAKE_UP_DUR_WAKE_DUR_DEFAULT ((uint8_t)0x00) 01202 01203 #define LSM6DS3_XG_WAKE_UP_DUR_WAKE_DUR_MASK ((uint8_t)0x60) 01204 /** 01205 * @} 01206 */ 01207 01208 /** @addtogroup LSM6DS3_XG_Accelerometer_TIMER_HR_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_TIMER_HR_Selection_WAKE_UP_DUR 01209 * @{ 01210 */ 01211 #define LSM6DS3_XG_WAKE_UP_DUR_TIMER_HR_DEFAULT ((uint8_t)0x00) 01212 01213 #define LSM6DS3_XG_WAKE_UP_DUR_TIMER_HR_MASK ((uint8_t)0x10) 01214 /** 01215 * @} 01216 */ 01217 01218 /** @addtogroup LSM6DS3_XG_Accelerometer_SLEEP_DUR_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_SLEEP_DUR_Selection_WAKE_UP_DUR 01219 * @{ 01220 */ 01221 #define LSM6DS3_XG_WAKE_UP_DUR_SLEEP_DUR_DEFAULT ((uint8_t)0x00) 01222 01223 #define LSM6DS3_XG_WAKE_UP_DUR_SLEEP_DUR_MASK ((uint8_t)0x0F) 01224 /** 01225 * @} 01226 */ 01227 01228 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_DUR_Selection_FREE_FALL LSM6DS3_XG_Accelerometer_FF_DUR_Selection_FREE_FALL 01229 * @{ 01230 */ 01231 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_DUR_DEFAULT ((uint8_t)0x00) 01232 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_DUR_TYPICAL ((uint8_t)0x30) 01233 01234 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_DUR_MASK ((uint8_t)0xF8) 01235 /** 01236 * @} 01237 */ 01238 01239 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_THS_Selection_FREE_FALL LSM6DS3_XG_Accelerometer_FF_THS_Selection_FREE_FALL 01240 * @{ 01241 */ 01242 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_156MG ((uint8_t)0x00) 01243 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_219MG ((uint8_t)0x01) 01244 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_250MG ((uint8_t)0x02) 01245 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_312MG ((uint8_t)0x03) 01246 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_344MG ((uint8_t)0x04) 01247 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_406MG ((uint8_t)0x05) 01248 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_469MG ((uint8_t)0x06) 01249 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_500MG ((uint8_t)0x07) 01250 01251 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_MASK ((uint8_t)0x07) 01252 01253 /** 01254 * @} 01255 */ 01256 01257 01258 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_INACT_STATE_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_INACT_STATE_Selection_MD1_CFG 01259 * @{ 01260 */ 01261 #define LSM6DS3_XG_MD1_CFG_INT1_INACT_STATE_DISABLE ((uint8_t)0x00) 01262 #define LSM6DS3_XG_MD1_CFG_INT1_INACT_STATE_ENABLE ((uint8_t)0x80) 01263 01264 #define LSM6DS3_XG_MD1_CFG_INT1_INACT_STATE_MASK ((uint8_t)0x80) 01265 /** 01266 * @} 01267 */ 01268 01269 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_SINGLE_TAP_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_SINGLE_TAP_Selection_MD1_CFG 01270 * @{ 01271 */ 01272 #define LSM6DS3_XG_MD1_CFG_INT1_SINGLE_TAP_DISABLE ((uint8_t)0x00) 01273 #define LSM6DS3_XG_MD1_CFG_INT1_SINGLE_TAP_ENABLE ((uint8_t)0x40) 01274 01275 #define LSM6DS3_XG_MD1_CFG_INT1_SINGLE_TAP_MASK ((uint8_t)0x40) 01276 /** 01277 * @} 01278 */ 01279 01280 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_WU_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_WU_Selection_MD1_CFG 01281 * @{ 01282 */ 01283 #define LSM6DS3_XG_MD1_CFG_INT1_WU_DISABLE ((uint8_t)0x00) 01284 #define LSM6DS3_XG_MD1_CFG_INT1_WU_ENABLE ((uint8_t)0x20) 01285 01286 #define LSM6DS3_XG_MD1_CFG_INT1_WU_MASK ((uint8_t)0x20) 01287 /** 01288 * @} 01289 */ 01290 01291 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_FF_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_FF_Selection_MD1_CFG 01292 * @{ 01293 */ 01294 #define LSM6DS3_XG_MD1_CFG_INT1_FF_DISABLE ((uint8_t)0x00) 01295 #define LSM6DS3_XG_MD1_CFG_INT1_FF_ENABLE ((uint8_t)0x10) 01296 01297 #define LSM6DS3_XG_MD1_CFG_INT1_FF_MASK ((uint8_t)0x10) 01298 /** 01299 * @} 01300 */ 01301 01302 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_DOUBLE_TAP_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_DOUBLE_TAP_Selection_MD1_CFG 01303 * @{ 01304 */ 01305 #define LSM6DS3_XG_MD1_CFG_INT1_DOUBLE_TAP_DISABLE ((uint8_t)0x00) 01306 #define LSM6DS3_XG_MD1_CFG_INT1_DOUBLE_TAP_ENABLE ((uint8_t)0x08) 01307 01308 #define LSM6DS3_XG_MD1_CFG_INT1_DOUBLE_TAP_MASK ((uint8_t)0x08) 01309 /** 01310 * @} 01311 */ 01312 01313 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_6D_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_6D_Selection_MD1_CFG 01314 * @{ 01315 */ 01316 #define LSM6DS3_XG_MD1_CFG_INT1_6D_DISABLE ((uint8_t)0x00) 01317 #define LSM6DS3_XG_MD1_CFG_INT1_6D_ENABLE ((uint8_t)0x04) 01318 01319 #define LSM6DS3_XG_MD1_CFG_INT1_6D_MASK ((uint8_t)0x04) 01320 /** 01321 * @} 01322 */ 01323 01324 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_TILT_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_TILT_Selection_MD1_CFG 01325 * @{ 01326 */ 01327 #define LSM6DS3_XG_MD1_CFG_INT1_TILT_DISABLE ((uint8_t)0x00) 01328 #define LSM6DS3_XG_MD1_CFG_INT1_TILT_ENABLE ((uint8_t)0x02) 01329 01330 #define LSM6DS3_XG_MD1_CFG_INT1_TILT_MASK ((uint8_t)0x02) 01331 /** 01332 * @} 01333 */ 01334 01335 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_TIMER_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_TIMER_Selection_MD1_CFG 01336 * @{ 01337 */ 01338 #define LSM6DS3_XG_MD1_CFG_INT1_TIMER_DISABLE ((uint8_t)0x00) 01339 #define LSM6DS3_XG_MD1_CFG_INT1_TIMER_ENABLE ((uint8_t)0x01) 01340 01341 #define LSM6DS3_XG_MD1_CFG_INT1_TIMER_MASK ((uint8_t)0x01) 01342 01343 /** 01344 * @} 01345 */ 01346 01347 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_IA_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_FF_IA_Enable_WAKE_UP_SRC 01348 * @{ 01349 */ 01350 #define LSM6DS3_XG_WAKE_UP_SRC_FF_IA_DISABLE ((uint8_t)0x00) 01351 #define LSM6DS3_XG_WAKE_UP_SRC_FF_IA_ENABLE ((uint8_t)0x20) 01352 01353 #define LSM6DS3_XG_WAKE_UP_SRC_FF_IA_MASK ((uint8_t)0x20) 01354 /** 01355 * @} 01356 */ 01357 01358 /** @addtogroup LSM6DS3_XG_Accelerometer_SLEEP_STATE_IA_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_SLEEP_STATE_IA_Enable_WAKE_UP_SRC 01359 * @{ 01360 */ 01361 #define LSM6DS3_XG_WAKE_UP_SRC_SLEEP_STATE_IA_DISABLE ((uint8_t)0x00) 01362 #define LSM6DS3_XG_WAKE_UP_SRC_SLEEP_STATE_IA_ENABLE ((uint8_t)0x10) 01363 01364 #define LSM6DS3_XG_WAKE_UP_SRC_SLEEP_STATE_IA_MASK ((uint8_t)0x10) 01365 /** 01366 * @} 01367 */ 01368 01369 /** @addtogroup LSM6DS3_XG_Accelerometer_WU_IA_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_WU_IA_Enable_WAKE_UP_SRC 01370 * @{ 01371 */ 01372 #define LSM6DS3_XG_WAKE_UP_SRC_WU_IA_DISABLE ((uint8_t)0x00) 01373 #define LSM6DS3_XG_WAKE_UP_SRC_WU_IA_ENABLE ((uint8_t)0x08) 01374 01375 #define LSM6DS3_XG_WAKE_UP_SRC_WU_IA_MASK ((uint8_t)0x08) 01376 /** 01377 * @} 01378 */ 01379 01380 /** @addtogroup LSM6DS3_XG_Accelerometer_X_WU_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_X_WU_Enable_WAKE_UP_SRC 01381 * @{ 01382 */ 01383 #define LSM6DS3_XG_WAKE_UP_SRC_X_WU_DISABLE ((uint8_t)0x00) 01384 #define LSM6DS3_XG_WAKE_UP_SRC_X_WU_ENABLE ((uint8_t)0x04) 01385 01386 #define LSM6DS3_XG_WAKE_UP_SRC_X_WU_MASK ((uint8_t)0x04) 01387 /** 01388 * @} 01389 */ 01390 01391 /** @addtogroup LSM6DS3_XG_Accelerometer_Y_WU_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_Y_WU_Enable_WAKE_UP_SRC 01392 * @{ 01393 */ 01394 #define LSM6DS3_XG_WAKE_UP_SRC_Y_WU_DISABLE ((uint8_t)0x00) 01395 #define LSM6DS3_XG_WAKE_UP_SRC_Y_WU_ENABLE ((uint8_t)0x02) 01396 01397 01398 #define LSM6DS3_XG_WAKE_UP_SRC_Y_WU_MASK ((uint8_t)0x02) 01399 /** 01400 * @} 01401 */ 01402 01403 /** @addtogroup LSM6DS3_XG_Accelerometer_Z_WU_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_Z_WU_Enable_WAKE_UP_SRC 01404 * @{ 01405 */ 01406 #define LSM6DS3_XG_WAKE_UP_SRC_Z_WU_DISABLE ((uint8_t)0x00) 01407 #define LSM6DS3_XG_WAKE_UP_SRC_Z_WU_ENABLE ((uint8_t)0x01) 01408 01409 #define LSM6DS3_XG_WAKE_UP_SRC_Z_WU_MASK ((uint8_t)0x01) 01410 /** 01411 * @} 01412 */ 01413 01414 /** 01415 * @} 01416 */ 01417 01418 /** @addtogroup LSM6DS3_Imported_Functions LSM6DS3_Imported_Functions 01419 * @{ 01420 */ 01421 01422 /* Six axes sensor IO functions */ 01423 extern IMU_6AXES_StatusTypeDef LSM6DS3_IO_Init( void ); 01424 extern IMU_6AXES_StatusTypeDef LSM6DS3_IO_Write( uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, 01425 uint16_t NumByteToWrite ); 01426 extern IMU_6AXES_StatusTypeDef LSM6DS3_IO_Read( uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, 01427 uint16_t NumByteToRead ); 01428 extern void LSM6DS3_IO_ITConfig( void ); 01429 01430 /** 01431 * @} 01432 */ 01433 01434 /** @addtogroup LSM6DS3_Exported_Types LSM6DS3_Exported_Types 01435 * @{ 01436 */ 01437 /** 01438 * @brief LSM6DS3 driver extended internal structure definition 01439 */ 01440 typedef struct 01441 { 01442 IMU_6AXES_StatusTypeDef (*Enable_Free_Fall_Detection) (void); 01443 IMU_6AXES_StatusTypeDef (*Disable_Free_Fall_Detection) (void); 01444 IMU_6AXES_StatusTypeDef (*Get_Status_Free_Fall_Detection) (uint8_t *); 01445 } LSM6DS3_DrvExtTypeDef; 01446 01447 /** 01448 * @} 01449 */ 01450 01451 /** @addtogroup LSM6DS3_Exported_Variables LSM6DS3_Exported_Variables 01452 * @{ 01453 */ 01454 01455 /* Six axes sensor driver structure */ 01456 extern IMU_6AXES_DrvTypeDef LSM6DS3Drv; 01457 extern IMU_6AXES_DrvExtTypeDef LSM6DS3Drv_ext; 01458 01459 /** 01460 * @} 01461 */ 01462 01463 /** 01464 * @} 01465 */ 01466 01467 /** 01468 * @} 01469 */ 01470 01471 /** 01472 * @} 01473 */ 01474 01475 #ifdef __cplusplus 01476 } 01477 #endif 01478 01479 #endif /* __LSM6DS3_H */ 01480 01481 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Sat Jul 16 2022 05:47:21 by
