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
stm32l475e_iot01.h
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>© 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****/
Generated on Tue Jul 12 2022 13:55:42 by 1.7.2