STM32F3-Discovery BSP User Manual
|
stm32f3_discovery.h
Go to the documentation of this file.
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f3_discovery.h 00004 * @author MCD Application Team 00005 * @brief This file contains definitions for STM32F3-Discovery's Leds, push- 00006 * buttons hardware resources. 00007 ****************************************************************************** 00008 * @attention 00009 * 00010 * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> 00011 * 00012 * Redistribution and use in source and binary forms, with or without modification, 00013 * are permitted provided that the following conditions are met: 00014 * 1. Redistributions of source code must retain the above copyright notice, 00015 * this list of conditions and the following disclaimer. 00016 * 2. Redistributions in binary form must reproduce the above copyright notice, 00017 * this list of conditions and the following disclaimer in the documentation 00018 * and/or other materials provided with the distribution. 00019 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00020 * may be used to endorse or promote products derived from this software 00021 * without specific prior written permission. 00022 * 00023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00024 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00025 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00026 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00027 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00028 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00029 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00030 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00031 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00032 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 * 00034 ****************************************************************************** 00035 */ 00036 00037 /* Define to prevent recursive inclusion -------------------------------------*/ 00038 #ifndef __STM32F3_DISCOVERY_H 00039 #define __STM32F3_DISCOVERY_H 00040 00041 #ifdef __cplusplus 00042 extern "C" { 00043 #endif 00044 00045 /** @addtogroup BSP 00046 * @{ 00047 */ 00048 00049 /** @defgroup STM32F3_DISCOVERY STM32F3-DISCOVERY 00050 * @{ 00051 */ 00052 00053 /* Includes ------------------------------------------------------------------*/ 00054 #include "stm32f3xx_hal.h" 00055 00056 /** @defgroup STM32F3_DISCOVERY_Common STM32F3-DISCOVERY Common 00057 * @{ 00058 */ 00059 00060 /** @defgroup STM32F3_DISCOVERY_Private_Constants Private Constants 00061 * @{ 00062 */ 00063 /** 00064 * @} 00065 */ 00066 00067 /** @defgroup STM32F3_DISCOVERY_Private_Variables Private Variables 00068 * @{ 00069 */ 00070 /** 00071 * @} 00072 */ 00073 00074 /** @defgroup STM32F3_DISCOVERY_Exported_Types Exported Types 00075 * @{ 00076 */ 00077 00078 /** 00079 * @brief LED Types Definition 00080 */ 00081 typedef enum 00082 { 00083 LED3 = 0, 00084 LED4 = 1, 00085 LED5 = 2, 00086 LED6 = 3, 00087 LED7 = 4, 00088 LED8 = 5, 00089 LED9 = 6, 00090 LED10 = 7, 00091 00092 LED_GREEN = LED6, 00093 LED_ORANGE = LED5, 00094 LED_RED = LED3, 00095 LED_BLUE = LED4, 00096 LED_GREEN_2 = LED7, 00097 LED_ORANGE_2 = LED8, 00098 LED_RED_2 = LED10, 00099 LED_BLUE_2 = LED9 00100 }Led_TypeDef; 00101 00102 /** 00103 * @brief BUTTON Types Definition 00104 */ 00105 typedef enum 00106 { 00107 BUTTON_USER = 0 00108 00109 }Button_TypeDef; 00110 00111 typedef enum 00112 { 00113 BUTTON_MODE_GPIO = 0, 00114 BUTTON_MODE_EXTI = 1 00115 00116 }ButtonMode_TypeDef; 00117 00118 00119 /** 00120 * @} 00121 */ 00122 00123 /** @defgroup STM32F3_DISCOVERY_Exported_Constants Exported Constants 00124 * @{ 00125 */ 00126 00127 /** 00128 * @brief Define for STM32F3_DISCOVERY board 00129 */ 00130 00131 #if !defined (USE_STM32F3_DISCO) 00132 #define USE_STM32F3_DISCO 00133 #endif 00134 00135 00136 /** @defgroup STM32F3_DISCOVERY_LED STM32F3-DISCOVERY LED 00137 * @{ 00138 */ 00139 #define LEDn 8 00140 00141 #define LED6_PIN GPIO_PIN_15 00142 #define LED6_GPIO_PORT GPIOE 00143 #define LED6_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00144 #define LED6_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00145 00146 #define LED8_PIN GPIO_PIN_14 00147 #define LED8_GPIO_PORT GPIOE 00148 #define LED8_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00149 #define LED8_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00150 00151 #define LED10_PIN GPIO_PIN_13 00152 #define LED10_GPIO_PORT GPIOE 00153 #define LED10_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00154 #define LED10_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00155 00156 #define LED9_PIN GPIO_PIN_12 00157 #define LED9_GPIO_PORT GPIOE 00158 #define LED9_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00159 #define LED9_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00160 00161 #define LED7_PIN GPIO_PIN_11 00162 #define LED7_GPIO_PORT GPIOE 00163 #define LED7_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00164 #define LED7_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00165 00166 #define LED5_PIN GPIO_PIN_10 00167 #define LED5_GPIO_PORT GPIOE 00168 #define LED5_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00169 #define LED5_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00170 00171 #define LED3_PIN GPIO_PIN_9 00172 #define LED3_GPIO_PORT GPIOE 00173 #define LED3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00174 #define LED3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00175 00176 #define LED4_PIN GPIO_PIN_8 00177 #define LED4_GPIO_PORT GPIOE 00178 #define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00179 #define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00180 00181 #define LEDx_GPIO_CLK_ENABLE(__LED__) do { if ((__LED__) == LED3) LED3_GPIO_CLK_ENABLE(); else\ 00182 if ((__LED__) == LED4) LED4_GPIO_CLK_ENABLE(); else\ 00183 if ((__LED__) == LED5) LED5_GPIO_CLK_ENABLE(); else\ 00184 if ((__LED__) == LED6) LED6_GPIO_CLK_ENABLE(); else\ 00185 if ((__LED__) == LED7) LED7_GPIO_CLK_ENABLE(); else\ 00186 if ((__LED__) == LED8) LED8_GPIO_CLK_ENABLE(); else\ 00187 if ((__LED__) == LED9) LED9_GPIO_CLK_ENABLE(); else\ 00188 if ((__LED__) == LED10) LED10_GPIO_CLK_ENABLE();} while(0) 00189 00190 #define LEDx_GPIO_CLK_DISABLE(__LED__) (((__LED__) == LED3) ? LED3_GPIO_CLK_DISABLE() :\ 00191 ((__LED__) == LED4) ? LED4_GPIO_CLK_DISABLE() :\ 00192 ((__LED__) == LED5) ? LED5_GPIO_CLK_DISABLE() :\ 00193 ((__LED__) == LED6) ? LED6_GPIO_CLK_DISABLE() :\ 00194 ((__LED__) == LED7) ? LED7_GPIO_CLK_DISABLE() :\ 00195 ((__LED__) == LED8) ? LED8_GPIO_CLK_DISABLE() :\ 00196 ((__LED__) == LED9) ? LED9_GPIO_CLK_DISABLE() :\ 00197 ((__LED__) == LED10) ? LED10_GPIO_CLK_DISABLE() : 0 ) 00198 00199 /** 00200 * @} 00201 */ 00202 00203 /** @defgroup STM32F3_DISCOVERY_BUTTON STM32F3-DISCOVERY BUTTON 00204 * @{ 00205 */ 00206 #define BUTTONn 1 00207 00208 /** 00209 * @brief push-button 00210 */ 00211 #define USER_BUTTON_PIN GPIO_PIN_0 00212 #define USER_BUTTON_GPIO_PORT GPIOA 00213 #define USER_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00214 #define USER_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00215 #define USER_BUTTON_EXTI_IRQn EXTI0_IRQn 00216 00217 #define BUTTONx_GPIO_CLK_ENABLE(__BUTTON__) do { if ((__BUTTON__) == BUTTON_USER) USER_BUTTON_GPIO_CLK_ENABLE();} while(0) 00218 00219 #define BUTTONx_GPIO_CLK_DISABLE(__BUTTON__) (((__BUTTON__) == BUTTON_USER) ? USER_BUTTON_GPIO_CLK_DISABLE() : 0 ) 00220 00221 /** 00222 * @} 00223 */ 00224 00225 /** @defgroup STM32F3_DISCOVERY_COM STM32F3-DISCOVERY COM 00226 * @{ 00227 */ 00228 00229 /*##################### SPIx ###################################*/ 00230 /** 00231 * @brief Definition for SPI Interface pins (SPI1 used) 00232 */ 00233 #define DISCOVERY_SPIx SPI1 00234 #define DISCOVERY_SPIx_CLK_ENABLE() __HAL_RCC_SPI1_CLK_ENABLE() 00235 #define DISCOVERY_SPIx_GPIO_PORT GPIOA /* GPIOA */ 00236 #define DISCOVERY_SPIx_AF GPIO_AF5_SPI1 00237 #define DISCOVERY_SPIx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00238 #define DISCOVERY_SPIx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00239 #define DISCOVERY_SPIx_SCK_PIN GPIO_PIN_5 /* PA.05 */ 00240 #define DISCOVERY_SPIx_MISO_PIN GPIO_PIN_6 /* PA.06 */ 00241 #define DISCOVERY_SPIx_MOSI_PIN GPIO_PIN_7 /* PA.07 */ 00242 /* Maximum Timeout values for flags waiting loops. These timeouts are not based 00243 on accurate values, they just guarantee that the application will not remain 00244 stuck if the SPI communication is corrupted. 00245 You may modify these timeout values depending on CPU frequency and application 00246 conditions (interrupts routines ...). */ 00247 #define SPIx_TIMEOUT_MAX ((uint32_t)0x1000) 00248 00249 /*##################### I2Cx ###################################*/ 00250 /** 00251 * @brief Definition for I2C Interface pins (I2C1 used) 00252 */ 00253 #define DISCOVERY_I2Cx I2C1 00254 #define DISCOVERY_I2Cx_CLK_ENABLE() __HAL_RCC_I2C1_CLK_ENABLE() 00255 #define DISCOVERY_I2Cx_CLK_DISABLE() __HAL_RCC_I2C1_CLK_DISABLE() 00256 #define DISCOVERY_I2Cx_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET() 00257 #define DISCOVERY_I2Cx_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET() 00258 00259 #define DISCOVERY_I2Cx_SCL_PIN GPIO_PIN_6 /* PB.06 */ 00260 #define DISCOVERY_I2Cx_SDA_PIN GPIO_PIN_7 /* PB.07 */ 00261 00262 #define DISCOVERY_I2Cx_GPIO_PORT GPIOB /* GPIOB */ 00263 #define DISCOVERY_I2Cx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() 00264 #define DISCOVERY_I2Cx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() 00265 #define DISCOVERY_I2Cx_AF GPIO_AF4_I2C1 00266 00267 /* Maximum Timeout values for flags waiting loops. These timeouts are not based 00268 on accurate values, they just guarantee that the application will not remain 00269 stuck if the I2C communication is corrupted. 00270 You may modify these timeout values depending on CPU frequency and application 00271 conditions (interrupts routines ...). */ 00272 #define I2Cx_TIMEOUT_MAX 0x10000 00273 00274 /** 00275 * @} 00276 */ 00277 00278 00279 /** @defgroup STM32F3_DISCOVERY_COMPONENT STM32F3-DISCOVERY COMPONENT 00280 * @{ 00281 */ 00282 /*##################### GYRO ##########################*/ 00283 /* Read/Write command */ 00284 #define READWRITE_CMD ((uint8_t)0x80) 00285 /* Multiple byte read/write command */ 00286 #define MULTIPLEBYTE_CMD ((uint8_t)0x40) 00287 /* Dummy Byte Send by the SPI Master device in order to generate the Clock to the Slave device */ 00288 #define DUMMY_BYTE ((uint8_t)0x00) 00289 00290 /* Chip Select macro definition */ 00291 #define GYRO_CS_LOW() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_RESET) 00292 #define GYRO_CS_HIGH() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_SET) 00293 00294 /** 00295 * @brief GYRO SPI Interface pins 00296 */ 00297 #define GYRO_CS_GPIO_PORT GPIOE /* GPIOE */ 00298 #define GYRO_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00299 #define GYRO_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00300 #define GYRO_CS_PIN GPIO_PIN_3 /* PE.03 */ 00301 00302 #define GYRO_INT_GPIO_PORT GPIOE /* GPIOE */ 00303 #define GYRO_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00304 #define GYRO_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00305 #define GYRO_INT1_PIN GPIO_PIN_0 /* PE.00 */ 00306 #define GYRO_INT1_EXTI_IRQn EXTI0_IRQn 00307 #define GYRO_INT2_PIN GPIO_PIN_1 /* PE.01 */ 00308 #define GYRO_INT2_EXTI_IRQn EXTI1_IRQn 00309 00310 /*##################### ACCELEROMETER ##########################*/ 00311 /** 00312 * @brief ACCELEROMETER I2C1 Interface pins 00313 */ 00314 #define ACCELERO_I2C_ADDRESS 0x32 00315 00316 #define ACCELERO_DRDY_PIN GPIO_PIN_2 /* PE.02 */ 00317 #define ACCELERO_DRDY_GPIO_PORT GPIOE /* GPIOE */ 00318 #define ACCELERO_DRDY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00319 #define ACCELERO_DRDY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00320 #define ACCELERO_DRDY_EXTI_IRQn EXTI2_TSC_IRQn /*TAMP_STAMP_IRQn*/ 00321 00322 #define ACCELERO_INT_GPIO_PORT GPIOE /* GPIOE */ 00323 #define ACCELERO_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() 00324 #define ACCELERO_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE() 00325 #define ACCELERO_INT1_PIN GPIO_PIN_4 /* PE.04 */ 00326 #define ACCELERO_INT1_EXTI_IRQn EXTI4_IRQn 00327 #define ACCELERO_INT2_PIN GPIO_PIN_5 /* PE.05 */ 00328 #define ACCELERO_INT2_EXTI_IRQn EXTI9_5_IRQn 00329 00330 /** 00331 * @} 00332 */ 00333 00334 /** 00335 * @} 00336 */ 00337 00338 /** @defgroup STM32F3_DISCOVERY_Exported_Functions Exported Functions 00339 * @{ 00340 */ 00341 uint32_t BSP_GetVersion(void); 00342 void BSP_LED_Init(Led_TypeDef Led); 00343 void BSP_LED_On(Led_TypeDef Led); 00344 void BSP_LED_Off(Led_TypeDef Led); 00345 void BSP_LED_Toggle(Led_TypeDef Led); 00346 void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode); 00347 uint32_t BSP_PB_GetState(Button_TypeDef Button); 00348 00349 /** 00350 * @} 00351 */ 00352 00353 /** 00354 * @} 00355 */ 00356 00357 /** 00358 * @} 00359 */ 00360 00361 /** 00362 * @} 00363 */ 00364 00365 #ifdef __cplusplus 00366 } 00367 #endif 00368 00369 #endif /* __STM32F3_DISCOVERY_H */ 00370 00371 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Wed May 31 2017 10:47:40 for STM32F3-Discovery BSP User Manual by
