B-L475E-IOT01 BSP User Manual
|
stm32l475e_iot01_accelero.c
Go to the documentation of this file.
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l475e_iot01_accelero.c 00004 * @author MCD Application Team 00005 * @version V1.0.0 00006 * @date 17-March-2017 00007 * @brief This file provides a set of functions needed to manage the accelerometer sensor 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© Copyright (c) 2017 STMicroelectronics International N.V. 00012 * All rights reserved.</center></h2> 00013 * 00014 * Redistribution and use in source and binary forms, with or without 00015 * modification, are permitted, provided that the following conditions are met: 00016 * 00017 * 1. Redistribution of source code must retain the above copyright notice, 00018 * this list of conditions and the following disclaimer. 00019 * 2. Redistributions in binary form must reproduce the above copyright notice, 00020 * this list of conditions and the following disclaimer in the documentation 00021 * and/or other materials provided with the distribution. 00022 * 3. Neither the name of STMicroelectronics nor the names of other 00023 * contributors to this software may be used to endorse or promote products 00024 * derived from this software without specific written permission. 00025 * 4. This software, including modifications and/or derivative works of this 00026 * software, must execute solely and exclusively on microcontroller or 00027 * microprocessor devices manufactured by or for STMicroelectronics. 00028 * 5. Redistribution and use of this software other than as permitted under 00029 * this license is void and will automatically terminate your rights under 00030 * this license. 00031 * 00032 * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" 00033 * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT 00034 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 00035 * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY 00036 * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT 00037 * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00038 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00039 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 00040 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00041 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00042 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00043 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00044 * 00045 ****************************************************************************** 00046 */ 00047 00048 /* Includes ------------------------------------------------------------------*/ 00049 #include "stm32l475e_iot01_accelero.h" 00050 /** @addtogroup BSP 00051 * @{ 00052 */ 00053 00054 /** @addtogroup STM32L475E_IOT01 00055 * @{ 00056 */ 00057 00058 /** @defgroup STM32L475E_IOT01_ACCELERO ACCELERO 00059 * @{ 00060 */ 00061 00062 /** @defgroup STM32L475E_IOT01_ACCELERO_Private_Variables ACCELERO Private Variables 00063 * @{ 00064 */ 00065 static ACCELERO_DrvTypeDef *AccelerometerDrv; 00066 /** 00067 * @} 00068 */ 00069 00070 /** @defgroup STM32L475E_IOT01_ACCELERO_Private_Functions ACCELERO Private Functions 00071 * @{ 00072 */ 00073 /** 00074 * @brief Initialize the ACCELERO. 00075 * @retval ACCELERO_OK or ACCELERO_ERROR 00076 */ 00077 ACCELERO_StatusTypeDef BSP_ACCELERO_Init(void) 00078 { 00079 ACCELERO_StatusTypeDef ret = ACCELERO_OK; 00080 uint16_t ctrl = 0x0000; 00081 ACCELERO_InitTypeDef LSM6DSL_InitStructure; 00082 00083 if(Lsm6dslAccDrv.ReadID() != LSM6DSL_ACC_GYRO_WHO_AM_I) 00084 { 00085 ret = ACCELERO_ERROR; 00086 } 00087 else 00088 { 00089 /* Initialize the ACCELERO accelerometer driver structure */ 00090 AccelerometerDrv = &Lsm6dslAccDrv; 00091 00092 /* MEMS configuration ------------------------------------------------------*/ 00093 /* Fill the ACCELERO accelerometer structure */ 00094 LSM6DSL_InitStructure.AccOutput_DataRate = LSM6DSL_ODR_52Hz; 00095 LSM6DSL_InitStructure.Axes_Enable = 0; 00096 LSM6DSL_InitStructure.AccFull_Scale = LSM6DSL_ACC_FULLSCALE_2G; 00097 LSM6DSL_InitStructure.BlockData_Update = LSM6DSL_BDU_BLOCK_UPDATE; 00098 LSM6DSL_InitStructure.High_Resolution = 0; 00099 LSM6DSL_InitStructure.Communication_Mode = 0; 00100 00101 /* Configure MEMS: data rate, full scale */ 00102 ctrl = (LSM6DSL_InitStructure.AccOutput_DataRate | LSM6DSL_InitStructure.AccFull_Scale); 00103 00104 /* Configure MEMS: BDU and Auto-increment for multi read/write */ 00105 ctrl |= ((LSM6DSL_InitStructure.BlockData_Update | LSM6DSL_ACC_GYRO_IF_INC_ENABLED) << 8); 00106 00107 /* Configure the ACCELERO accelerometer main parameters */ 00108 AccelerometerDrv->Init(ctrl); 00109 } 00110 00111 return ret; 00112 } 00113 00114 /** 00115 * @brief DeInitialize the ACCELERO. 00116 * @retval None. 00117 */ 00118 void BSP_ACCELERO_DeInit(void) 00119 { 00120 /* DeInitialize the accelerometer IO interfaces */ 00121 if(AccelerometerDrv != NULL) 00122 { 00123 if(AccelerometerDrv->DeInit != NULL) 00124 { 00125 AccelerometerDrv->DeInit(); 00126 } 00127 } 00128 } 00129 00130 /** 00131 * @brief Set/Unset the ACCELERO in low power mode. 00132 * @param status 0 means disable Low Power Mode, otherwise Low Power Mode is enabled 00133 * @retval None 00134 */ 00135 void BSP_ACCELERO_LowPower(uint16_t status) 00136 { 00137 /* Set/Unset the ACCELERO in low power mode */ 00138 if(AccelerometerDrv != NULL) 00139 { 00140 if(AccelerometerDrv->LowPower != NULL) 00141 { 00142 AccelerometerDrv->LowPower(status); 00143 } 00144 } 00145 } 00146 00147 /** 00148 * @brief Get XYZ acceleration values. 00149 * @param pDataXYZ Pointer on 3 angular accelerations table with 00150 * pDataXYZ[0] = X axis, pDataXYZ[1] = Y axis, pDataXYZ[2] = Z axis 00151 * @retval None 00152 */ 00153 void BSP_ACCELERO_AccGetXYZ(int16_t *pDataXYZ) 00154 { 00155 if(AccelerometerDrv != NULL) 00156 { 00157 if(AccelerometerDrv->GetXYZ != NULL) 00158 { 00159 AccelerometerDrv->GetXYZ(pDataXYZ); 00160 } 00161 } 00162 } 00163 /** 00164 * @} 00165 */ 00166 00167 /** 00168 * @} 00169 */ 00170 00171 /** 00172 * @} 00173 */ 00174 00175 /** 00176 * @} 00177 */ 00178 00179 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Thu Mar 16 2017 10:38:32 for B-L475E-IOT01 BSP User Manual by
