STM32F072B-Discovery BSP User Manual
|
stm32f072b_discovery.h
Go to the documentation of this file.
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f072b_discovery.h 00004 * @author MCD Application Team 00005 * @brief This file contains definitions for STM32F072B-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 __STM32F072B_DISCOVERY_H 00039 #define __STM32F072B_DISCOVERY_H 00040 00041 #ifdef __cplusplus 00042 extern "C" { 00043 #endif 00044 00045 /* Includes ------------------------------------------------------------------*/ 00046 #include "stm32f0xx_hal.h" 00047 00048 /** @addtogroup BSP 00049 * @{ 00050 */ 00051 00052 /** @defgroup STM32F072B_DISCOVERY STM32F072B_DISCOVERY 00053 * @{ 00054 */ 00055 00056 /** @defgroup STM32F072B_DISCOVERY_Common STM32F072B_DISCOVERY Common 00057 * @{ 00058 */ 00059 00060 /** @defgroup STM32F072B_DISCOVERY_Exported_Types Exported Types 00061 * @{ 00062 */ 00063 00064 /** 00065 * @brief LED Types Definition 00066 */ 00067 typedef enum 00068 { 00069 LED3 = 0, 00070 LED4 = 1, 00071 LED5 = 2, 00072 LED6 = 3, 00073 /* Color led aliases */ 00074 LED_RED = LED3, 00075 LED_ORANGE = LED4, 00076 LED_GREEN = LED5, 00077 LED_BLUE = LED6 00078 }Led_TypeDef; 00079 00080 /** 00081 * @brief BUTTON Types Definition 00082 */ 00083 typedef enum 00084 { 00085 BUTTON_USER = 0 00086 }Button_TypeDef; 00087 00088 typedef enum 00089 { 00090 BUTTON_MODE_GPIO = 0, 00091 BUTTON_MODE_EXTI = 1 00092 }ButtonMode_TypeDef; 00093 00094 /** 00095 * @} 00096 */ 00097 00098 /** @defgroup STM32F072B_DISCOVERY_Exported_Constants Exported Constants 00099 * @{ 00100 */ 00101 /** 00102 * @brief Define for STM32F072B_DISCOVERY board 00103 */ 00104 #if !defined (USE_STM32072B_DISCO) 00105 #define USE_STM32072B_DISCO 00106 #endif 00107 /** @defgroup STM32F072B_DISCOVERY_LED STM32F072B_DISCOVERY LED 00108 * @{ 00109 */ 00110 #define LEDn 4 00111 00112 #define LED3_PIN GPIO_PIN_6 00113 #define LED3_GPIO_PORT GPIOC 00114 #define LED3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00115 #define LED3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00116 00117 #define LED4_PIN GPIO_PIN_8 00118 #define LED4_GPIO_PORT GPIOC 00119 #define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00120 #define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00121 00122 #define LED5_PIN GPIO_PIN_9 00123 #define LED5_GPIO_PORT GPIOC 00124 #define LED5_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00125 #define LED5_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00126 00127 #define LED6_PIN GPIO_PIN_7 00128 #define LED6_GPIO_PORT GPIOC 00129 #define LED6_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00130 #define LED6_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00131 00132 #define LEDx_GPIO_CLK_ENABLE(__LED__) do { if((__LED__) == LED3) LED3_GPIO_CLK_ENABLE(); else \ 00133 if((__LED__) == LED4) LED4_GPIO_CLK_ENABLE(); else \ 00134 if((__LED__) == LED5) LED5_GPIO_CLK_ENABLE(); else \ 00135 if((__LED__) == LED6) LED6_GPIO_CLK_ENABLE();} while(0) 00136 00137 #define LEDx_GPIO_CLK_DISABLE(__LED__) (((__LED__) == LED3) ? LED3_GPIO_CLK_DISABLE() :\ 00138 ((__LED__) == LED4) ? LED4_GPIO_CLK_DISABLE() :\ 00139 ((__LED__) == LED5) ? LED5_GPIO_CLK_DISABLE() : \ 00140 ((__LED__) == LED6) ? LED6_GPIO_CLK_DISABLE() : 0 ) 00141 /** 00142 * @} 00143 */ 00144 00145 /** @defgroup STM32F072B_DISCOVERY_BUTTON STM32F072B_DISCOVERY BUTTON 00146 * @{ 00147 */ 00148 #define BUTTONn 1 00149 00150 /** 00151 * @brief USER push-button 00152 */ 00153 #define USER_BUTTON_PIN GPIO_PIN_0 /* PA0 */ 00154 #define USER_BUTTON_GPIO_PORT GPIOA 00155 #define USER_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00156 #define USER_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00157 #define USER_BUTTON_EXTI_IRQn EXTI0_1_IRQn 00158 00159 #define BUTTONx_GPIO_CLK_ENABLE(__BUTTON__) do { if((__BUTTON__) == BUTTON_USER) USER_BUTTON_GPIO_CLK_ENABLE();} while(0) 00160 00161 #define BUTTONx_GPIO_CLK_DISABLE(__BUTTON__) (((__BUTTON__) == BUTTON_USER) ? USER_BUTTON_GPIO_CLK_DISABLE() : 0 ) 00162 /** 00163 * @} 00164 */ 00165 00166 /** @defgroup STM32F072B_DISCOVERY_BUS STM32F072B_DISCOVERY BUS 00167 * @{ 00168 */ 00169 #if defined(HAL_SPI_MODULE_ENABLED) 00170 /*##################### SPI1 ###################################*/ 00171 #define DISCOVERY_SPIx SPI2 00172 #define DISCOVERY_SPIx_CLOCK_ENABLE() __HAL_RCC_SPI2_CLK_ENABLE() 00173 #define DISCOVERY_SPIx_GPIO_PORT GPIOB /* GPIOB */ 00174 #define DISCOVERY_SPIx_AF GPIO_AF0_SPI2 00175 #define DISCOVERY_SPIx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() 00176 #define DISCOVERY_SPIx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() 00177 #define DISCOVERY_SPIx_SCK_PIN GPIO_PIN_13 /* PB.13 */ 00178 #define DISCOVERY_SPIx_MISO_PIN GPIO_PIN_14 /* PB.14 */ 00179 #define DISCOVERY_SPIx_MOSI_PIN GPIO_PIN_15 /* PB.15 */ 00180 /* Maximum Timeout values for flags waiting loops. These timeouts are not based 00181 on accurate values, they just guarantee that the application will not remain 00182 stuck if the SPI communication is corrupted. 00183 You may modify these timeout values depending on CPU frequency and application 00184 conditions (interrupts routines ...). */ 00185 #define SPIx_TIMEOUT_MAX ((uint32_t)0x1000) 00186 #endif /* HAL_SPI_MODULE_ENABLED */ 00187 00188 #if defined(HAL_I2C_MODULE_ENABLED) 00189 /*##################### I2C2 ###################################*/ 00190 /** 00191 * @brief Definition for I2C Interface pins (I2C2 used) 00192 */ 00193 #define DISCOVERY_I2Cx I2C2 00194 #define DISCOVERY_I2Cx_CLK_ENABLE() __HAL_RCC_I2C2_CLK_ENABLE() 00195 #define DISCOVERY_I2Cx_CLK_DISABLE() __HAL_RCC_I2C2_CLK_DISABLE() 00196 #define DISCOVERY_I2Cx_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET() 00197 #define DISCOVERY_I2Cx_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET() 00198 00199 #define DISCOVERY_I2Cx_SCL_PIN GPIO_PIN_10 /* PB.10 */ 00200 #define DISCOVERY_I2Cx_SDA_PIN GPIO_PIN_11 /* PB.11 */ 00201 00202 #define DISCOVERY_I2Cx_GPIO_PORT GPIOB /* GPIOB */ 00203 #define DISCOVERY_I2Cx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() 00204 #define DISCOVERY_I2Cx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() 00205 #define DISCOVERY_I2Cx_AF GPIO_AF1_I2C2 00206 00207 /* Maximum Timeout values for flags waiting loops. These timeouts are not based 00208 on accurate values, they just guarantee that the application will not remain 00209 stuck if the I2C communication is corrupted. 00210 You may modify these timeout values depending on CPU frequency and application 00211 conditions (interrupts routines ...). */ 00212 //#define I2Cx_TIMEOUT_MAX ((uint32_t)0xFFFF) 00213 #define I2Cx_TIMEOUT_MAX ((uint32_t)0x10000) 00214 00215 #define DISCOVERY_I2Cx_TIMING 0x40B32537 00216 00217 #define DISCOVERY_EEPROM_I2C_ADDRESS_A01 0xA0 00218 00219 #endif /* HAL_I2C_MODULE_ENABLED */ 00220 00221 /** 00222 * @} 00223 */ 00224 00225 /** @defgroup STM32F072B_DISCOVERY_COMPONENT STM32F072B_DISCOVERY COMPONENT 00226 * @{ 00227 */ 00228 /*##################### GYRO ##########################*/ 00229 /* Read/Write command */ 00230 #define READWRITE_CMD ((uint8_t)0x80) 00231 /* Multiple byte read/write command */ 00232 #define MULTIPLEBYTE_CMD ((uint8_t)0x40) 00233 /* Dummy Byte Send by the SPI Master device in order to generate the Clock to the Slave device */ 00234 #define DUMMY_BYTE ((uint8_t)0x00) 00235 00236 /* Chip Select macro definition */ 00237 #define GYRO_CS_LOW() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_RESET) 00238 #define GYRO_CS_HIGH() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_SET) 00239 00240 /** 00241 * @brief GYRO SPI Interface pins 00242 */ 00243 #define GYRO_CS_GPIO_PORT GPIOC /* GPIOC */ 00244 #define GYRO_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00245 #define GYRO_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00246 #define GYRO_CS_PIN GPIO_PIN_0 /* PC.00 */ 00247 00248 #define GYRO_INT_GPIO_PORT GPIOC /* GPIOC */ 00249 #define GYRO_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00250 #define GYRO_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00251 #define GYRO_INT1_PIN GPIO_PIN_1 /* PC.01 */ 00252 #define GYRO_INT1_EXTI_IRQn EXTI0_1_IRQn 00253 #define GYRO_INT2_PIN GPIO_PIN_2 /* PC.02 */ 00254 #define GYRO_INT2_EXTI_IRQn EXTI2_3_IRQn 00255 00256 /*##################### EEPROM ##########################*/ 00257 /** 00258 * @brief I2C EEPROM Interface pins 00259 */ 00260 #define DISCOVERY_EEPROM_DMA DMA1 00261 #define DISCOVERY_EEPROM_DMA_CHANNEL_TX DMA1_Channel4 00262 #define DISCOVERY_EEPROM_DMA_CHANNEL_RX DMA1_Channel5 00263 #define DISCOVERY_EEPROM_DMA_CLK_ENABLE() __HAL_RCC_DMA1_CLK_ENABLE() 00264 #define DISCOVERY_EEPROM_DMA_CLK_DISABLE() __HAL_RCC_DMA1_CLK_DISABLE() 00265 00266 #define DISCOVERY_EEPROM_DMA_TX_IRQn DMA1_Channel4_5_6_7_IRQn 00267 #define DISCOVERY_EEPROM_DMA_RX_IRQn DMA1_Channel4_5_6_7_IRQn 00268 #define DISCOVERY_EEPROM_DMA_PREPRIO 0 00269 #define DISCOVERY_EEPROM_DMA_SUBPRIO 0 00270 00271 /** 00272 * @} 00273 */ 00274 00275 /** 00276 * @} 00277 */ 00278 00279 /** @defgroup STM32F072B_DISCOVERY_Exported_Functions Exported Functions 00280 * @{ 00281 */ 00282 uint32_t BSP_GetVersion(void); 00283 void BSP_LED_Init(Led_TypeDef Led); 00284 void BSP_LED_On(Led_TypeDef Led); 00285 void BSP_LED_Off(Led_TypeDef Led); 00286 void BSP_LED_Toggle(Led_TypeDef Led); 00287 void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Mode); 00288 uint32_t BSP_PB_GetState(Button_TypeDef Button); 00289 /** 00290 * @} 00291 */ 00292 00293 /** 00294 * @} 00295 */ 00296 00297 /** 00298 * @} 00299 */ 00300 00301 /** 00302 * @} 00303 */ 00304 00305 #ifdef __cplusplus 00306 } 00307 #endif 00308 00309 #endif /* __STM32F072B_DISCOVERY_H */ 00310 00311 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Wed Jul 5 2017 09:43:19 for STM32F072B-Discovery BSP User Manual by
