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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32l475e_iot01.h Source File

stm32l475e_iot01.h

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l475e_iot01.h
00004   * @author  MCD Application Team
00005   * @brief   STM32L475E IOT01 board support package
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.</center></h2>
00011   *
00012   * This software component is licensed by ST under BSD 3-Clause license,
00013   * the "License"; You may not use this file except in compliance with the
00014   * License. You may obtain a copy of the License at:
00015   *                        opensource.org/licenses/BSD-3-Clause
00016   *
00017   ******************************************************************************
00018   */
00019 
00020 /* Define to prevent recursive inclusion -------------------------------------*/
00021 #ifndef __STM32L475E_IOT01_H
00022 #define __STM32L475E_IOT01_H
00023 
00024 #ifdef __cplusplus
00025  extern "C" {
00026 #endif
00027 
00028 /* Includes ------------------------------------------------------------------*/
00029 #include "stm32l4xx_hal.h"
00030 
00031 /** @addtogroup BSP
00032   * @{
00033   */
00034 
00035 /** @addtogroup STM32L475E_IOT01
00036   * @{
00037   */
00038       
00039 /** @addtogroup STM32L475E_IOT01_LOW_LEVEL
00040   * @{
00041   */ 
00042 
00043 /** @defgroup STM32L475E_IOT01_LOW_LEVEL_Exported_Types LOW LEVEL Exported Types
00044   * @{
00045   */
00046 typedef enum 
00047 {
00048   DISCO_LED2 = 0,
00049   DISCO_LED_GREEN = DISCO_LED2,
00050 }Led_TypeDef;
00051 
00052 
00053 typedef enum 
00054 {  
00055   BUTTON_USER = 0
00056 }Button_TypeDef;
00057 
00058 typedef enum 
00059 {  
00060   BUTTON_MODE_GPIO = 0,
00061   BUTTON_MODE_EXTI = 1
00062 }ButtonMode_TypeDef;
00063 
00064 typedef enum 
00065 {
00066   COM1 = 0,
00067   COM2 = 0,
00068 }COM_TypeDef;
00069 /**
00070   * @}
00071   */ 
00072 
00073 /** @defgroup STM32L475E_IOT01_LOW_LEVEL_Exported_Constants LOW LEVEL Exported Constants
00074   * @{
00075   */ 
00076 
00077 /** 
00078   * @brief  Define for STM32L475E_IOT01 board
00079   */ 
00080 #if !defined (USE_STM32L475E_IOT01)
00081  #define USE_STM32L475E_IOT01
00082 #endif
00083 
00084 #define LEDn                             ((uint8_t)1)
00085 
00086 #define LED2_PIN                         GPIO_PIN_14
00087 #define LED2_GPIO_PORT                   GPIOB
00088 #define LED2_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOB_CLK_ENABLE()
00089 #define LED2_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOB_CLK_DISABLE()
00090 
00091 
00092 
00093 #define LEDx_GPIO_CLK_ENABLE(__INDEX__)  do{if((__INDEX__) == 0) LED2_GPIO_CLK_ENABLE();}while(0)
00094 
00095 #define LEDx_GPIO_CLK_DISABLE(__INDEX__)  do{if((__INDEX__) == 0) LED2_GPIO_CLK_DISABLE();}while(0)
00096 
00097 /* Only one User/Wakeup button */
00098 #define BUTTONn                             ((uint8_t)1)
00099 
00100 /**
00101   * @brief Wakeup push-button
00102   */
00103 #define USER_BUTTON_PIN                   GPIO_PIN_13
00104 #define USER_BUTTON_GPIO_PORT             GPIOC
00105 #define USER_BUTTON_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOC_CLK_ENABLE()
00106 #define USER_BUTTON_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOC_CLK_DISABLE()
00107 #define USER_BUTTON_EXTI_IRQn             EXTI15_10_IRQn
00108 
00109 /**
00110   * @brief  NFC Gpio PINs
00111   */
00112 #define NFC_GPIO_GPO_PIN                         GPIO_PIN_4
00113 #define NFC_GPIO_GPO_PIN_PORT                    GPIOE
00114 #define NFC_GPIO_RFDISABLE_PIN                   GPIO_PIN_2
00115 #define NFC_GPIO_RFDISABLE_PIN_PORT              GPIOE  
00116 #define NFC_GPIO_CLK_ENABLE()                    __HAL_RCC_GPIOE_CLK_ENABLE();
00117 #define NFC_GPIO_CLK_DISABLE()                   __HAL_RCC_GPIOE_CLK_DISABLE();
00118 
00119 
00120 #define COMn                              ((uint8_t)1)
00121 
00122 /**
00123  * @brief Definition for COM port1, connected to USART1
00124  */ 
00125 #define DISCOVERY_COM1                          USART1
00126 #define DISCOVERY_COM1_CLK_ENABLE()             __HAL_RCC_USART1_CLK_ENABLE()
00127 #define DISCOVERY_COM1_CLK_DISABLE()            __HAL_RCC_USART1_CLK_DISABLE()
00128 
00129 #define DISCOVERY_COM1_TX_PIN                   GPIO_PIN_6
00130 #define DISCOVERY_COM1_TX_GPIO_PORT             GPIOB
00131 #define DISCOVERY_COM1_TX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOB_CLK_ENABLE()   
00132 #define DISCOVERY_COM1_TX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOB_CLK_DISABLE()  
00133 #define DISCOVERY_COM1_TX_AF                    GPIO_AF7_USART1
00134 
00135 #define DISCOVERY_COM1_RX_PIN                   GPIO_PIN_7
00136 #define DISCOVERY_COM1_RX_GPIO_PORT             GPIOB
00137 #define DISCOVERY_COM1_RX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOB_CLK_ENABLE()   
00138 #define DISCOVERY_COM1_RX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOB_CLK_DISABLE()  
00139 #define DISCOVERY_COM1_RX_AF                    GPIO_AF7_USART1
00140 
00141 #define DISCOVERY_COM1_IRQn                     USART1_IRQn
00142                                               
00143 
00144 #define DISCOVERY_COMx_CLK_ENABLE(__INDEX__)            do { if((__INDEX__) == COM1) {DISCOVERY_COM1_CLK_ENABLE();}} while(0)
00145 #define DISCOVERY_COMx_CLK_DISABLE(__INDEX__)           do { if((__INDEX__) == COM1) {DISCOVERY_COM1_CLK_DISABLE();}} while(0)
00146 
00147 #define DISCOVERY_COMx_TX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) {DISCOVERY_COM1_TX_GPIO_CLK_ENABLE();}} while(0)
00148 #define DISCOVERY_COMx_TX_GPIO_CLK_DISABLE(__INDEX__)   do { if((__INDEX__) == COM1) {DISCOVERY_COM1_TX_GPIO_CLK_DISABLE();}} while(0)
00149 
00150 #define DISCOVERY_COMx_RX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) {DISCOVERY_COM1_RX_GPIO_CLK_ENABLE();}} while(0)
00151 #define DISCOVERY_COMx_RX_GPIO_CLK_DISABLE(__INDEX__)   do { if((__INDEX__) == COM1) {DISCOVERY_COM1_RX_GPIO_CLK_DISABLE();}} while(0)
00152 
00153 
00154 /* User can use this section to tailor I2Cx instance used and associated resources */
00155 /* Definition for I2Cx resources */
00156 #define DISCOVERY_I2Cx                             I2C2
00157 #define DISCOVERY_I2Cx_CLK_ENABLE()                __HAL_RCC_I2C2_CLK_ENABLE()
00158 #define DISCOVERY_I2Cx_CLK_DISABLE()               __HAL_RCC_I2C2_CLK_DISABLE()   
00159 #define DISCOVERY_DMAx_CLK_ENABLE()                __HAL_RCC_DMA1_CLK_ENABLE()
00160 #define DISCOVERY_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOB_CLK_ENABLE()
00161 #define DISCOVERY_I2Cx_SCL_SDA_GPIO_CLK_DISABLE()  __HAL_RCC_GPIOB_CLK_DISABLE()
00162    
00163 #define DISCOVERY_I2Cx_FORCE_RESET()               __HAL_RCC_I2C2_FORCE_RESET()
00164 #define DISCOVERY_I2Cx_RELEASE_RESET()             __HAL_RCC_I2C2_RELEASE_RESET()
00165 
00166 /* Definition for I2Cx Pins */
00167 #define DISCOVERY_I2Cx_SCL_PIN                     GPIO_PIN_10
00168 #define DISCOVERY_I2Cx_SDA_PIN                     GPIO_PIN_11                                               
00169 #define DISCOVERY_I2Cx_SCL_SDA_GPIO_PORT           GPIOB
00170 #define DISCOVERY_I2Cx_SCL_SDA_AF                  GPIO_AF4_I2C2
00171 
00172 /* I2C interrupt requests */
00173 #define DISCOVERY_I2Cx_EV_IRQn                     I2C2_EV_IRQn
00174 #define DISCOVERY_I2Cx_ER_IRQn                     I2C2_ER_IRQn
00175 
00176 /* I2C clock speed configuration (in Hz)
00177   WARNING:
00178    Make sure that this define is not already declared in other files.
00179    It can be used in parallel by other modules. */
00180 #ifndef DISCOVERY_I2C_SPEED
00181  #define DISCOVERY_I2C_SPEED                             100000
00182 #endif /* DISCOVERY_I2C_SPEED */
00183 
00184 #ifndef DISCOVERY_I2Cx_TIMING  
00185 #define DISCOVERY_I2Cx_TIMING                     ((uint32_t)0x00702681)
00186 #endif /* DISCOVERY_I2Cx_TIMING */ 
00187 
00188 
00189 /* I2C Sensors address */
00190 /* LPS22HB (Pressure) I2C Address */
00191 #define LPS22HB_I2C_ADDRESS  (uint8_t)0xBA
00192 /* HTS221 (Humidity) I2C Address */
00193 #define HTS221_I2C_ADDRESS   (uint8_t)0xBE
00194 
00195 #ifdef USE_LPS22HB_TEMP
00196 /* LPS22HB Sensor hardware I2C address */ 
00197 #define TSENSOR_I2C_ADDRESS     LPS22HB_I2C_ADDRESS
00198 #else /* USE_HTS221_TEMP */
00199 /* HTS221 Sensor hardware I2C address */ 
00200 #define TSENSOR_I2C_ADDRESS     HTS221_I2C_ADDRESS
00201 #endif
00202 
00203 /* NFC I2C address and specific config parameters */
00204 #define M24SR_I2C_ADDR             (uint8_t)  0xAC /*!< M24SR address */
00205 #define NFC_I2C_STATUS_SUCCESS     (uint16_t) 0x0000
00206 #define NFC_I2C_ERROR_TIMEOUT      (uint16_t) 0x0011
00207 #define NFC_I2C_TIMEOUT_STD        (uint32_t) 8 /* I2C Time out (ms), used to call Transmit/Receive HAL functions */
00208 #define NFC_I2C_TIMEOUT_MAX        (uint32_t) 200 /* I2C Time out (ms), this is the maximum time needed by M24SR to complete any command */
00209 #define NFC_I2C_TRIALS             (uint32_t) 1 /* In case M24SR will reply ACK failed allow to perform retry before returning error (HAL option not used) */
00210 
00211 
00212 /**
00213   * @}
00214   */
00215 
00216 /* Exported types ------------------------------------------------------------*/
00217 /* Exported constants --------------------------------------------------------*/
00218 /* Exported macros -----------------------------------------------------------*/
00219 /* Private macros ------------------------------------------------------------*/
00220 /* Exported functions --------------------------------------------------------*/
00221                                                
00222 /** @defgroup STM32L475E_IOT01_LOW_LEVEL_Exported_Functions LOW LEVEL Exported Functions
00223   * @{
00224   */
00225 uint32_t         BSP_GetVersion(void);  
00226 void             BSP_LED_Init(Led_TypeDef Led);
00227 void             BSP_LED_DeInit(Led_TypeDef Led);
00228 void             BSP_LED_On(Led_TypeDef Led);
00229 void             BSP_LED_Off(Led_TypeDef Led);
00230 void             BSP_LED_Toggle(Led_TypeDef Led);
00231 void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
00232 void             BSP_PB_DeInit(Button_TypeDef Button);
00233 uint32_t         BSP_PB_GetState(Button_TypeDef Button);
00234 void             BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *husart);
00235 void             BSP_COM_DeInit(COM_TypeDef COM, UART_HandleTypeDef *huart);
00236 /**
00237   * @}
00238   */
00239 
00240 /**
00241   * @}
00242   */ 
00243 
00244 /**
00245   * @}
00246   */ 
00247 
00248 /**
00249   * @}
00250   */
00251 #ifdef __cplusplus
00252 }
00253 #endif
00254 
00255 #endif /* __STM32L475E_IOT01_H */
00256 
00257 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/