Contains the BSP driver for the B-L475E-IOT01 board.
Dependents: mbed-os-example-ble-Thermometer DISCO_L475VG_IOT01-Telegram-BOT DISCO_L475VG_IOT01-sche_cheveux DISCO_L475VG_IOT01-QSPI_FLASH_FILE_SYSTEM ... more
https://os.mbed.com/platforms/ST-Discovery-L475E-IOT01A/
Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_magneto.c@7:bfe8272ced90, 2019-09-24 (annotated)
- Committer:
- jeromecoutant
- Date:
- Tue Sep 24 15:30:09 2019 +0200
- Revision:
- 7:bfe8272ced90
- Parent:
- 6:9dfa42666f03
Update BSP files with STM32Cube L4 V1.14.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 3:c6b5944187d5 | 1 | /** |
bcostm | 3:c6b5944187d5 | 2 | ****************************************************************************** |
bcostm | 3:c6b5944187d5 | 3 | * @file stm32l475e_iot01_magneto.c |
bcostm | 3:c6b5944187d5 | 4 | * @author MCD Application Team |
bcostm | 3:c6b5944187d5 | 5 | * @brief This file provides a set of functions needed to manage the magnetometer sensor |
bcostm | 3:c6b5944187d5 | 6 | ****************************************************************************** |
bcostm | 3:c6b5944187d5 | 7 | * @attention |
bcostm | 3:c6b5944187d5 | 8 | * |
jeromecoutant | 7:bfe8272ced90 | 9 | * <h2><center>© Copyright (c) 2017 STMicroelectronics. |
bcostm | 3:c6b5944187d5 | 10 | * All rights reserved.</center></h2> |
bcostm | 3:c6b5944187d5 | 11 | * |
jeromecoutant | 7:bfe8272ced90 | 12 | * This software component is licensed by ST under BSD 3-Clause license, |
jeromecoutant | 7:bfe8272ced90 | 13 | * the "License"; You may not use this file except in compliance with the |
jeromecoutant | 7:bfe8272ced90 | 14 | * License. You may obtain a copy of the License at: |
jeromecoutant | 7:bfe8272ced90 | 15 | * opensource.org/licenses/BSD-3-Clause |
bcostm | 3:c6b5944187d5 | 16 | * |
bcostm | 3:c6b5944187d5 | 17 | ****************************************************************************** |
bcostm | 3:c6b5944187d5 | 18 | */ |
bcostm | 3:c6b5944187d5 | 19 | |
bcostm | 3:c6b5944187d5 | 20 | /* Includes ------------------------------------------------------------------*/ |
bcostm | 3:c6b5944187d5 | 21 | #include "stm32l475e_iot01_magneto.h" |
bcostm | 3:c6b5944187d5 | 22 | |
bcostm | 3:c6b5944187d5 | 23 | /** @addtogroup BSP |
bcostm | 3:c6b5944187d5 | 24 | * @{ |
bcostm | 3:c6b5944187d5 | 25 | */ |
bcostm | 3:c6b5944187d5 | 26 | |
bcostm | 3:c6b5944187d5 | 27 | /** @addtogroup STM32L475E_IOT01 |
bcostm | 3:c6b5944187d5 | 28 | * @{ |
bcostm | 3:c6b5944187d5 | 29 | */ |
bcostm | 3:c6b5944187d5 | 30 | |
bcostm | 3:c6b5944187d5 | 31 | /** @defgroup STM32L475E_IOT01_MAGNETO MAGNETO |
bcostm | 3:c6b5944187d5 | 32 | * @{ |
bcostm | 3:c6b5944187d5 | 33 | */ |
bcostm | 3:c6b5944187d5 | 34 | |
bcostm | 3:c6b5944187d5 | 35 | /** @defgroup STM32L475E_IOT01_MAGNETO_Private_Variables MAGNETO Private Variables |
bcostm | 3:c6b5944187d5 | 36 | * @{ |
bcostm | 3:c6b5944187d5 | 37 | */ |
bcostm | 3:c6b5944187d5 | 38 | static MAGNETO_DrvTypeDef *MagnetoDrv; |
bcostm | 3:c6b5944187d5 | 39 | /** |
bcostm | 3:c6b5944187d5 | 40 | * @} |
bcostm | 3:c6b5944187d5 | 41 | */ |
bcostm | 3:c6b5944187d5 | 42 | |
bcostm | 3:c6b5944187d5 | 43 | |
bcostm | 3:c6b5944187d5 | 44 | /** @defgroup STM32L475E_IOT01_MAGNETO_Private_Functions MAGNETO Private Functions |
bcostm | 3:c6b5944187d5 | 45 | * @{ |
bcostm | 3:c6b5944187d5 | 46 | */ |
bcostm | 3:c6b5944187d5 | 47 | |
bcostm | 3:c6b5944187d5 | 48 | /** |
bcostm | 3:c6b5944187d5 | 49 | * @brief Initialize a magnetometer sensor |
bcostm | 3:c6b5944187d5 | 50 | * @retval COMPONENT_ERROR in case of failure |
bcostm | 3:c6b5944187d5 | 51 | */ |
bcostm | 3:c6b5944187d5 | 52 | MAGNETO_StatusTypeDef BSP_MAGNETO_Init(void) |
bcostm | 3:c6b5944187d5 | 53 | { |
bcostm | 3:c6b5944187d5 | 54 | MAGNETO_StatusTypeDef ret = MAGNETO_OK; |
bcostm | 3:c6b5944187d5 | 55 | MAGNETO_InitTypeDef LIS3MDL_InitStructureMag; |
bcostm | 3:c6b5944187d5 | 56 | |
bcostm | 3:c6b5944187d5 | 57 | if(Lis3mdlMagDrv.ReadID() != I_AM_LIS3MDL) |
bcostm | 3:c6b5944187d5 | 58 | { |
bcostm | 3:c6b5944187d5 | 59 | ret = MAGNETO_ERROR; |
bcostm | 3:c6b5944187d5 | 60 | } |
bcostm | 3:c6b5944187d5 | 61 | else |
bcostm | 3:c6b5944187d5 | 62 | { |
bcostm | 3:c6b5944187d5 | 63 | /* Initialize the MAGNETO magnetometer driver structure */ |
bcostm | 3:c6b5944187d5 | 64 | MagnetoDrv = &Lis3mdlMagDrv; |
bcostm | 3:c6b5944187d5 | 65 | |
bcostm | 3:c6b5944187d5 | 66 | /* MEMS configuration ------------------------------------------------------*/ |
bcostm | 3:c6b5944187d5 | 67 | /* Fill the MAGNETO magnetometer structure */ |
bcostm | 3:c6b5944187d5 | 68 | LIS3MDL_InitStructureMag.Register1 = LIS3MDL_MAG_TEMPSENSOR_DISABLE | LIS3MDL_MAG_OM_XY_HIGH | LIS3MDL_MAG_ODR_40_HZ; |
bcostm | 3:c6b5944187d5 | 69 | LIS3MDL_InitStructureMag.Register2 = LIS3MDL_MAG_FS_4_GA | LIS3MDL_MAG_REBOOT_DEFAULT | LIS3MDL_MAG_SOFT_RESET_DEFAULT; |
bcostm | 3:c6b5944187d5 | 70 | LIS3MDL_InitStructureMag.Register3 = LIS3MDL_MAG_CONFIG_NORMAL_MODE | LIS3MDL_MAG_CONTINUOUS_MODE; |
bcostm | 3:c6b5944187d5 | 71 | LIS3MDL_InitStructureMag.Register4 = LIS3MDL_MAG_OM_Z_HIGH | LIS3MDL_MAG_BLE_LSB; |
bcostm | 3:c6b5944187d5 | 72 | LIS3MDL_InitStructureMag.Register5 = LIS3MDL_MAG_BDU_MSBLSB; |
bcostm | 3:c6b5944187d5 | 73 | /* Configure the MAGNETO magnetometer main parameters */ |
bcostm | 3:c6b5944187d5 | 74 | MagnetoDrv->Init(LIS3MDL_InitStructureMag); |
bcostm | 3:c6b5944187d5 | 75 | } |
bcostm | 3:c6b5944187d5 | 76 | |
bcostm | 3:c6b5944187d5 | 77 | return ret; |
bcostm | 3:c6b5944187d5 | 78 | } |
bcostm | 3:c6b5944187d5 | 79 | |
bcostm | 3:c6b5944187d5 | 80 | /** |
bcostm | 3:c6b5944187d5 | 81 | * @brief DeInitialize the MAGNETO. |
bcostm | 3:c6b5944187d5 | 82 | */ |
bcostm | 3:c6b5944187d5 | 83 | void BSP_MAGNETO_DeInit(void) |
bcostm | 3:c6b5944187d5 | 84 | { |
bcostm | 3:c6b5944187d5 | 85 | /* DeInitialize the magnetometer IO interfaces */ |
bcostm | 3:c6b5944187d5 | 86 | if(MagnetoDrv != NULL) |
bcostm | 3:c6b5944187d5 | 87 | { |
bcostm | 3:c6b5944187d5 | 88 | if(MagnetoDrv->DeInit != NULL) |
bcostm | 3:c6b5944187d5 | 89 | { |
bcostm | 3:c6b5944187d5 | 90 | MagnetoDrv->DeInit(); |
bcostm | 3:c6b5944187d5 | 91 | } |
bcostm | 3:c6b5944187d5 | 92 | } |
bcostm | 3:c6b5944187d5 | 93 | } |
bcostm | 3:c6b5944187d5 | 94 | |
bcostm | 3:c6b5944187d5 | 95 | /** |
bcostm | 3:c6b5944187d5 | 96 | * @brief Set/Unset the MAGNETO in low power mode. |
bcostm | 3:c6b5944187d5 | 97 | */ |
bcostm | 3:c6b5944187d5 | 98 | void BSP_MAGNETO_LowPower(uint16_t status) |
bcostm | 3:c6b5944187d5 | 99 | { |
bcostm | 3:c6b5944187d5 | 100 | /* Put the magnetometer in low power mode */ |
bcostm | 3:c6b5944187d5 | 101 | if(MagnetoDrv != NULL) |
bcostm | 3:c6b5944187d5 | 102 | { |
bcostm | 3:c6b5944187d5 | 103 | if(MagnetoDrv->LowPower != NULL) |
bcostm | 3:c6b5944187d5 | 104 | { |
bcostm | 3:c6b5944187d5 | 105 | MagnetoDrv->LowPower(status); |
bcostm | 3:c6b5944187d5 | 106 | } |
bcostm | 3:c6b5944187d5 | 107 | } |
bcostm | 3:c6b5944187d5 | 108 | } |
bcostm | 3:c6b5944187d5 | 109 | |
bcostm | 3:c6b5944187d5 | 110 | /** |
bcostm | 3:c6b5944187d5 | 111 | * @brief Get XYZ magnetometer values. |
bcostm | 3:c6b5944187d5 | 112 | * @param pDataXYZ Pointer on 3 magnetometer values table with |
bcostm | 3:c6b5944187d5 | 113 | * pDataXYZ[0] = X axis, pDataXYZ[1] = Y axis, pDataXYZ[2] = Z axis |
bcostm | 3:c6b5944187d5 | 114 | */ |
bcostm | 3:c6b5944187d5 | 115 | void BSP_MAGNETO_GetXYZ(int16_t *pDataXYZ) |
bcostm | 3:c6b5944187d5 | 116 | { |
bcostm | 3:c6b5944187d5 | 117 | if(MagnetoDrv != NULL) |
bcostm | 3:c6b5944187d5 | 118 | { |
bcostm | 3:c6b5944187d5 | 119 | if(MagnetoDrv->GetXYZ != NULL) |
bcostm | 3:c6b5944187d5 | 120 | { |
bcostm | 3:c6b5944187d5 | 121 | MagnetoDrv->GetXYZ(pDataXYZ); |
bcostm | 3:c6b5944187d5 | 122 | } |
bcostm | 3:c6b5944187d5 | 123 | } |
bcostm | 3:c6b5944187d5 | 124 | } |
bcostm | 3:c6b5944187d5 | 125 | |
bcostm | 3:c6b5944187d5 | 126 | /** |
bcostm | 3:c6b5944187d5 | 127 | * @} |
bcostm | 3:c6b5944187d5 | 128 | */ |
bcostm | 3:c6b5944187d5 | 129 | |
bcostm | 3:c6b5944187d5 | 130 | /** |
bcostm | 3:c6b5944187d5 | 131 | * @} |
bcostm | 3:c6b5944187d5 | 132 | */ |
bcostm | 3:c6b5944187d5 | 133 | |
bcostm | 3:c6b5944187d5 | 134 | /** |
bcostm | 3:c6b5944187d5 | 135 | * @} |
bcostm | 3:c6b5944187d5 | 136 | */ |
bcostm | 3:c6b5944187d5 | 137 | |
bcostm | 3:c6b5944187d5 | 138 | /** |
bcostm | 3:c6b5944187d5 | 139 | * @} |
bcostm | 3:c6b5944187d5 | 140 | */ |
bcostm | 3:c6b5944187d5 | 141 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |