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.
Dependencies: VL53L0X
Fork of BSP_B-L475E-IOT01 by
stm32l475e_iot01_magneto.c
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l475e_iot01_magneto.c 00004 * @author MCD Application Team 00005 * @brief This file provides a set of functions needed to manage the magnetometer sensor 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * <h2><center>© Copyright (c) 2017 STMicroelectronics International N.V. 00010 * All rights reserved.</center></h2> 00011 * 00012 * Redistribution and use in source and binary forms, with or without 00013 * modification, are permitted, provided that the following conditions are met: 00014 * 00015 * 1. Redistribution 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 other 00021 * contributors to this software may be used to endorse or promote products 00022 * derived from this software without specific written permission. 00023 * 4. This software, including modifications and/or derivative works of this 00024 * software, must execute solely and exclusively on microcontroller or 00025 * microprocessor devices manufactured by or for STMicroelectronics. 00026 * 5. Redistribution and use of this software other than as permitted under 00027 * this license is void and will automatically terminate your rights under 00028 * this license. 00029 * 00030 * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" 00031 * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT 00032 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 00033 * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY 00034 * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT 00035 * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00036 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00037 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 00038 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00039 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00040 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00041 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00042 * 00043 ****************************************************************************** 00044 */ 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "stm32l475e_iot01_magneto.h" 00048 00049 /** @addtogroup BSP 00050 * @{ 00051 */ 00052 00053 /** @addtogroup STM32L475E_IOT01 00054 * @{ 00055 */ 00056 00057 /** @defgroup STM32L475E_IOT01_MAGNETO MAGNETO 00058 * @{ 00059 */ 00060 00061 /** @defgroup STM32L475E_IOT01_MAGNETO_Private_Variables MAGNETO Private Variables 00062 * @{ 00063 */ 00064 static MAGNETO_DrvTypeDef *MagnetoDrv; 00065 /** 00066 * @} 00067 */ 00068 00069 00070 /** @defgroup STM32L475E_IOT01_MAGNETO_Private_Functions MAGNETO Private Functions 00071 * @{ 00072 */ 00073 00074 /** 00075 * @brief Initialize a magnetometer sensor 00076 * @retval COMPONENT_ERROR in case of failure 00077 */ 00078 MAGNETO_StatusTypeDef BSP_MAGNETO_Init(void) 00079 { 00080 MAGNETO_StatusTypeDef ret = MAGNETO_OK; 00081 MAGNETO_InitTypeDef LIS3MDL_InitStructureMag; 00082 00083 if(Lis3mdlMagDrv.ReadID() != I_AM_LIS3MDL) 00084 { 00085 ret = MAGNETO_ERROR; 00086 } 00087 else 00088 { 00089 /* Initialize the MAGNETO magnetometer driver structure */ 00090 MagnetoDrv = &Lis3mdlMagDrv; 00091 00092 /* MEMS configuration ------------------------------------------------------*/ 00093 /* Fill the MAGNETO magnetometer structure */ 00094 LIS3MDL_InitStructureMag.Register1 = LIS3MDL_MAG_TEMPSENSOR_DISABLE | LIS3MDL_MAG_OM_XY_HIGH | LIS3MDL_MAG_ODR_40_HZ; 00095 LIS3MDL_InitStructureMag.Register2 = LIS3MDL_MAG_FS_4_GA | LIS3MDL_MAG_REBOOT_DEFAULT | LIS3MDL_MAG_SOFT_RESET_DEFAULT; 00096 LIS3MDL_InitStructureMag.Register3 = LIS3MDL_MAG_CONFIG_NORMAL_MODE | LIS3MDL_MAG_CONTINUOUS_MODE; 00097 LIS3MDL_InitStructureMag.Register4 = LIS3MDL_MAG_OM_Z_HIGH | LIS3MDL_MAG_BLE_LSB; 00098 LIS3MDL_InitStructureMag.Register5 = LIS3MDL_MAG_BDU_MSBLSB; 00099 /* Configure the MAGNETO magnetometer main parameters */ 00100 MagnetoDrv->Init(LIS3MDL_InitStructureMag); 00101 } 00102 00103 return ret; 00104 } 00105 00106 /** 00107 * @brief DeInitialize the MAGNETO. 00108 */ 00109 void BSP_MAGNETO_DeInit(void) 00110 { 00111 /* DeInitialize the magnetometer IO interfaces */ 00112 if(MagnetoDrv != NULL) 00113 { 00114 if(MagnetoDrv->DeInit != NULL) 00115 { 00116 MagnetoDrv->DeInit(); 00117 } 00118 } 00119 } 00120 00121 /** 00122 * @brief Set/Unset the MAGNETO in low power mode. 00123 */ 00124 void BSP_MAGNETO_LowPower(uint16_t status) 00125 { 00126 /* Put the magnetometer in low power mode */ 00127 if(MagnetoDrv != NULL) 00128 { 00129 if(MagnetoDrv->LowPower != NULL) 00130 { 00131 MagnetoDrv->LowPower(status); 00132 } 00133 } 00134 } 00135 00136 /** 00137 * @brief Get XYZ magnetometer values. 00138 * @param pDataXYZ Pointer on 3 magnetometer values table with 00139 * pDataXYZ[0] = X axis, pDataXYZ[1] = Y axis, pDataXYZ[2] = Z axis 00140 */ 00141 void BSP_MAGNETO_GetXYZ(int16_t *pDataXYZ) 00142 { 00143 if(MagnetoDrv != NULL) 00144 { 00145 if(MagnetoDrv->GetXYZ != NULL) 00146 { 00147 MagnetoDrv->GetXYZ(pDataXYZ); 00148 } 00149 } 00150 } 00151 00152 /** 00153 * @} 00154 */ 00155 00156 /** 00157 * @} 00158 */ 00159 00160 /** 00161 * @} 00162 */ 00163 00164 /** 00165 * @} 00166 */ 00167 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 15:06:31 by
1.7.2
