Firmware Library for X-NUCLEO-IKS01A1 (MEMS Inertial & Environmental Sensors) Expansion Board
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: MultiTech_Dragonfly_2015_ATT_Gov_Solutions_Hackathon_Example HelloWorld_IKS01A1 LoRaWAN-test-10secs ServoMotorDemo ... more
Fork of X_NUCLEO_IKS01A1 by
X-NUCLEO-IKS01A1 MEMS Inertial & Environmental Sensor Nucleo Expansion Board Firmware Package
Introduction
This firmware package includes Components Device Drivers and Board Support Package for STMicroelectronics' X-NUCLEO-IKS01A1 MEMS Inertial & Environmental Sensors Nucleo Expansion Board.
Firmware Library
Class X_NUCLEO_IKS01A1 is intended to represent the MEMS inertial & environmental sensors expansion board with the same name.
The expansion board is basically featuring four IPs:
- a HTS221 Relative Humidity and Temperature Sensor,
- a LIS3MDL 3-Axis Magnetometer,
- a LPS25H MEMS Pressure Sensor, and
- a LSM6DS0 3D Accelerometer and 3D Gyroscope
The expansion board features also a DIL 24-pin socket which makes it possible to add further MEMS adapters and other sensors (e.g. UV index).
It is intentionally implemented as a singleton because only one X_NUCLEO_IKS01A1 at a time might be deployed in a HW component stack. In order to get the singleton instance you have to call class method `Instance()`, e.g.:
// Sensors expansion board singleton instance static X_NUCLEO_IKS01A1 *sensors_expansion_board = X_NUCLEO_IKS01A1::Instance();
Furthermore, library ST_INTERFACES
contains all abstract classes which together constitute the common API to which all existing and future ST components will adhere to.
Example Applications
Diff: Components/lis3mdl/lis3mdl.h
- Revision:
- 24:92cc9c6e4b2b
- Parent:
- 5:8bab0f419849
--- a/Components/lis3mdl/lis3mdl.h Fri May 29 16:50:56 2015 +0200 +++ b/Components/lis3mdl/lis3mdl.h Wed Jun 03 14:57:57 2015 +0200 @@ -2,9 +2,9 @@ ****************************************************************************** * @file lis3mdl.h * @author MEMS Application Team - * @version V1.2.0 - * @date 28-January-2015 - * @brief This file contains definitions for the lis3mdl.c + * @version V1.3.0 + * @date 28-May-2015 + * @brief This file contains definitions for the lis3mdl.c * firmware driver. ****************************************************************************** * @attention @@ -45,7 +45,7 @@ #endif /* Includes ------------------------------------------------------------------*/ -#include "../Common/magneto.h" +#include "magneto.h" /** @addtogroup BSP * @{ @@ -53,8 +53,8 @@ /** @addtogroup Components * @{ - */ - + */ + /** @addtogroup LIS3MDL * @{ */ @@ -63,7 +63,7 @@ * @{ */ #ifndef NULL - #define NULL (void *) 0 +#define NULL (void *) 0 #endif @@ -246,7 +246,7 @@ /** * @brief Multiple Byte. Mask for enabling multiple byte read/write command. - */ + */ #define LIS3MDL_I2C_MULTIPLEBYTE_CMD ((uint8_t)0x80) /** @@ -254,7 +254,7 @@ */ #define LIS3MDL_M_MEMS_ADDRESS 0x3C // SAD[1] = 1 - + /** * @brief Device Identifier. Default value of the WHO_AM_I register. */ @@ -400,22 +400,24 @@ /** * @} */ - + /** @defgroup LIS3MDL_Imported_Functions LIS3MDL_Imported_Functions * @{ */ /* Magneto sensor IO functions */ extern MAGNETO_StatusTypeDef LIS3MDL_IO_Init(void); -extern MAGNETO_StatusTypeDef LIS3MDL_IO_Write(uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, uint16_t NumByteToWrite); -extern MAGNETO_StatusTypeDef LIS3MDL_IO_Read(uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, uint16_t NumByteToRead); +extern MAGNETO_StatusTypeDef LIS3MDL_IO_Write(uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, + uint16_t NumByteToWrite); +extern MAGNETO_StatusTypeDef LIS3MDL_IO_Read(uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, + uint16_t NumByteToRead); extern void LIS3MDL_IO_ITConfig( void ); /** * @} */ -/* ------------------------------------------------------- */ +/* ------------------------------------------------------- */ /* Here you should declare the internal struct of */ /* extended features of LSM6DS0. See the example of */ /* LSM6DS3 in lsm6ds3.h */ @@ -439,7 +441,7 @@ /** * @} */ - + /** * @} */