Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
stm32f429i_discovery.h
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f429i_discovery.h 00004 * @author MCD Application Team 00005 * @version V2.1.5 00006 * @date 27-January-2017 00007 * @brief This file contains definitions for STM32F429I-Discovery Kit LEDs, 00008 * push-buttons hardware resources. 00009 ****************************************************************************** 00010 * @attention 00011 * 00012 * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> 00013 * 00014 * Redistribution and use in source and binary forms, with or without modification, 00015 * are permitted provided that the following conditions are met: 00016 * 1. Redistributions of source code must retain the above copyright notice, 00017 * this list of conditions and the following disclaimer. 00018 * 2. Redistributions in binary form must reproduce the above copyright notice, 00019 * this list of conditions and the following disclaimer in the documentation 00020 * and/or other materials provided with the distribution. 00021 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00022 * may be used to endorse or promote products derived from this software 00023 * without specific prior written permission. 00024 * 00025 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00026 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00027 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00028 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00029 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00030 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00031 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00032 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00033 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00034 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00035 * 00036 ****************************************************************************** 00037 */ 00038 00039 /* Define to prevent recursive inclusion -------------------------------------*/ 00040 #ifndef __STM32F429I_DISCOVERY_H 00041 #define __STM32F429I_DISCOVERY_H 00042 00043 #ifdef __cplusplus 00044 extern "C" { 00045 #endif 00046 00047 /* Includes ------------------------------------------------------------------*/ 00048 #include "stm32f4xx_hal.h" 00049 00050 #define EE_M24LR64 1 // Added for mbed 00051 00052 /** @addtogroup BSP 00053 * @{ 00054 */ 00055 00056 /** @addtogroup STM32F429I_DISCOVERY 00057 * @{ 00058 */ 00059 00060 /** @addtogroup STM32F429I_DISCOVERY_LOW_LEVEL 00061 * @{ 00062 */ 00063 00064 /** @addtogroup STM32F429I_DISCOVERY_LOW_LEVEL_Exported_Types STM32F429I DISCOVERY LOW LEVEL Exported Types 00065 * @{ 00066 */ 00067 typedef enum 00068 { 00069 DISCO_LED3 = 0, 00070 DISCO_LED4 = 1 00071 }Led_TypeDef; 00072 00073 typedef enum 00074 { 00075 BUTTON_KEY = 0, 00076 }Button_TypeDef; 00077 00078 typedef enum 00079 { 00080 BUTTON_MODE_GPIO = 0, 00081 BUTTON_MODE_EXTI = 1 00082 }ButtonMode_TypeDef; 00083 00084 /** 00085 * @} 00086 */ 00087 00088 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_Exported_Constants STM32F429I DISCOVERY LOW LEVEL Exported Constants 00089 * @{ 00090 */ 00091 00092 /** 00093 * @brief Define for STM32F429I_DISCO board 00094 */ 00095 #if !defined (USE_STM32F429I_DISCO) 00096 #define USE_STM32F429I_DISCO 00097 #endif 00098 00099 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_LED STM32F429I DISCOVERY LOW LEVEL LED 00100 * @{ 00101 */ 00102 #define LEDn 2 00103 00104 #define LED3_PIN GPIO_PIN_13 00105 #define LED3_GPIO_PORT GPIOG 00106 #define LED3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE() 00107 #define LED3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE() 00108 00109 #define LED4_PIN GPIO_PIN_14 00110 #define LED4_GPIO_PORT GPIOG 00111 #define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE() 00112 #define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE() 00113 00114 #define LEDx_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) LED3_GPIO_CLK_ENABLE(); else \ 00115 if((__INDEX__) == 1) LED4_GPIO_CLK_ENABLE(); \ 00116 }while(0) 00117 #define LEDx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) LED3_GPIO_CLK_DISABLE(); else \ 00118 if((__INDEX__) == 1) LED4_GPIO_CLK_DISABLE(); \ 00119 }while(0) 00120 /** 00121 * @} 00122 */ 00123 00124 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_BUTTON STM32F429I DISCOVERY LOW LEVEL BUTTON 00125 * @{ 00126 */ 00127 #define BUTTONn 1 00128 00129 /** 00130 * @brief Wakeup push-button 00131 */ 00132 #define KEY_BUTTON_PIN GPIO_PIN_0 00133 #define KEY_BUTTON_GPIO_PORT GPIOA 00134 #define KEY_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00135 #define KEY_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00136 #define KEY_BUTTON_EXTI_IRQn EXTI0_IRQn 00137 00138 #define BUTTONx_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) KEY_BUTTON_GPIO_CLK_ENABLE(); \ 00139 }while(0) 00140 #define BUTTONx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) KEY_BUTTON_GPIO_CLK_DISABLE(); \ 00141 }while(0) 00142 /** 00143 * @} 00144 */ 00145 00146 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_BUS STM32F429I DISCOVERY LOW LEVEL BUS 00147 * @{ 00148 */ 00149 /* Exported constanIO --------------------------------------------------------*/ 00150 #define IO_I2C_ADDRESS 0x82 00151 #define TS_I2C_ADDRESS 0x82 00152 00153 #ifdef EE_M24LR64 00154 #define EEPROM_I2C_ADDRESS_A01 0xA0 00155 #define EEPROM_I2C_ADDRESS_A02 0xA6 00156 #endif /* EE_M24LR64 */ 00157 00158 /*############################### I2Cx #######################################*/ 00159 /* User can use this section to tailor I2Cx instance used and associated 00160 resources */ 00161 #define DISCOVERY_I2Cx I2C3 00162 #define DISCOVERY_I2Cx_CLOCK_ENABLE() __HAL_RCC_I2C3_CLK_ENABLE() 00163 #define DISCOVERY_I2Cx_FORCE_RESET() __HAL_RCC_I2C3_FORCE_RESET() 00164 #define DISCOVERY_I2Cx_RELEASE_RESET() __HAL_RCC_I2C3_RELEASE_RESET() 00165 #define DISCOVERY_I2Cx_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00166 #define DISCOVERY_I2Cx_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00167 #define DISCOVERY_I2Cx_SDA_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00168 00169 /* Definition for DISCO I2Cx Pins */ 00170 #define DISCOVERY_I2Cx_SCL_PIN GPIO_PIN_8 00171 #define DISCOVERY_I2Cx_SCL_GPIO_PORT GPIOA 00172 #define DISCOVERY_I2Cx_SCL_SDA_AF GPIO_AF4_I2C3 00173 #define DISCOVERY_I2Cx_SDA_PIN GPIO_PIN_9 00174 #define DISCOVERY_I2Cx_SDA_GPIO_PORT GPIOC 00175 00176 /* Definition for IOE I2Cx's NVIC */ 00177 #define DISCOVERY_I2Cx_EV_IRQn I2C3_EV_IRQn 00178 #define DISCOVERY_I2Cx_ER_IRQn I2C3_ER_IRQn 00179 00180 /* I2C clock speed configuration (in Hz) 00181 WARNING: 00182 Make sure that this define is not already declared in other files. 00183 It can be used in parallel by other modules. */ 00184 #ifndef BSP_I2C_SPEED 00185 #define BSP_I2C_SPEED 100000 00186 #endif /* BSP_I2C_SPEED */ 00187 00188 #define I2Cx_TIMEOUT_MAX 0x3000 /*<! The value of the maximal timeout for I2C waiting loops */ 00189 00190 /*############################### SPIx #######################################*/ 00191 #define DISCOVERY_SPIx SPI5 00192 #define DISCOVERY_SPIx_CLK_ENABLE() __HAL_RCC_SPI5_CLK_ENABLE() 00193 #define DISCOVERY_SPIx_GPIO_PORT GPIOF /* GPIOF */ 00194 #define DISCOVERY_SPIx_AF GPIO_AF5_SPI5 00195 #define DISCOVERY_SPIx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE() 00196 #define DISCOVERY_SPIx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOF_CLK_DISABLE() 00197 #define DISCOVERY_SPIx_SCK_PIN GPIO_PIN_7 /* PF.07 */ 00198 #define DISCOVERY_SPIx_MISO_PIN GPIO_PIN_8 /* PF.08 */ 00199 #define DISCOVERY_SPIx_MOSI_PIN GPIO_PIN_9 /* PF.09 */ 00200 /* Maximum Timeout values for flags waiting loops. These timeouts are not based 00201 on accurate values, they just guarantee that the application will not remain 00202 stuck if the SPI communication is corrupted. 00203 You may modify these timeout values depending on CPU frequency and application 00204 conditions (interrupts routines ...). */ 00205 #define SPIx_TIMEOUT_MAX ((uint32_t)0x1000) 00206 00207 00208 /*################################ IOE #######################################*/ 00209 /** 00210 * @brief IOE Control pin 00211 */ 00212 /* Definition for external IT for STMPE811 */ 00213 #define STMPE811_INT_PIN GPIO_PIN_15 00214 #define STMPE811_INT_GPIO_PORT GPIOA 00215 #define STMPE811_INT_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00216 #define STMPE811_INT_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00217 #define STMPE811_INT_EXTI EXTI15_10_IRQn 00218 #define STMPE811_INT_EXTIHandler EXTI15_10_IRQHandler 00219 00220 /*################################ LCD #######################################*/ 00221 /* Chip Select macro definition */ 00222 #define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_NCS_GPIO_PORT, LCD_NCS_PIN, GPIO_PIN_RESET) 00223 #define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_NCS_GPIO_PORT, LCD_NCS_PIN, GPIO_PIN_SET) 00224 00225 /* Set WRX High to send data */ 00226 #define LCD_WRX_LOW() HAL_GPIO_WritePin(LCD_WRX_GPIO_PORT, LCD_WRX_PIN, GPIO_PIN_RESET) 00227 #define LCD_WRX_HIGH() HAL_GPIO_WritePin(LCD_WRX_GPIO_PORT, LCD_WRX_PIN, GPIO_PIN_SET) 00228 00229 /* Set WRX High to send data */ 00230 #define LCD_RDX_LOW() HAL_GPIO_WritePin(LCD_RDX_GPIO_PORT, LCD_RDX_PIN, GPIO_PIN_RESET) 00231 #define LCD_RDX_HIGH() HAL_GPIO_WritePin(LCD_RDX_GPIO_PORT, LCD_RDX_PIN, GPIO_PIN_SET) 00232 00233 /** 00234 * @brief LCD Control pin 00235 */ 00236 #define LCD_NCS_PIN GPIO_PIN_2 00237 #define LCD_NCS_GPIO_PORT GPIOC 00238 #define LCD_NCS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00239 #define LCD_NCS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00240 /** 00241 * @} 00242 */ 00243 /** 00244 * @brief LCD Command/data pin 00245 */ 00246 #define LCD_WRX_PIN GPIO_PIN_13 00247 #define LCD_WRX_GPIO_PORT GPIOD 00248 #define LCD_WRX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() 00249 #define LCD_WRX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE() 00250 00251 #define LCD_RDX_PIN GPIO_PIN_12 00252 #define LCD_RDX_GPIO_PORT GPIOD 00253 #define LCD_RDX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() 00254 #define LCD_RDX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE() 00255 00256 /*################################ GYROSCOPE #################################*/ 00257 /* Read/Write command */ 00258 #define READWRITE_CMD ((uint8_t)0x80) 00259 /* Multiple byte read/write command */ 00260 #define MULTIPLEBYTE_CMD ((uint8_t)0x40) 00261 /* Dummy Byte Send by the SPI Master device in order to generate the Clock to the Slave device */ 00262 #define DUMMY_BYTE ((uint8_t)0x00) 00263 00264 /* Chip Select macro definition */ 00265 #define GYRO_CS_LOW() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_RESET) 00266 #define GYRO_CS_HIGH() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_SET) 00267 00268 /** 00269 * @brief GYROSCOPE SPI Interface pins 00270 */ 00271 #define GYRO_CS_PIN GPIO_PIN_1 /* PC.01 */ 00272 #define GYRO_CS_GPIO_PORT GPIOC /* GPIOC */ 00273 #define GYRO_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() 00274 #define GYRO_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() 00275 00276 #define GYRO_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00277 #define GYRO_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00278 #define GYRO_INT_GPIO_PORT GPIOA /* GPIOA */ 00279 #define GYRO_INT1_PIN GPIO_PIN_1 /* PA.01 */ 00280 #define GYRO_INT1_EXTI_IRQn EXTI1_IRQn 00281 #define GYRO_INT2_PIN GPIO_PIN_2 /* PA.02 */ 00282 #define GYRO_INT2_EXTI_IRQn EXTI2_IRQn 00283 /** 00284 * @} 00285 */ 00286 00287 #ifdef EE_M24LR64 00288 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_I2C_EEPROM STM32F429I DISCOVERY LOW LEVEL I2C EEPROM 00289 * @{ 00290 */ 00291 /** 00292 * @brief I2C EEPROM Interface pins 00293 */ 00294 #define EEPROM_I2C_DMA DMA1 00295 #define EEPROM_I2C_DMA_CHANNEL DMA_CHANNEL_3 00296 #define EEPROM_I2C_DMA_STREAM_TX DMA1_Stream4 00297 #define EEPROM_I2C_DMA_STREAM_RX DMA1_Stream2 00298 #define EEPROM_I2C_DMA_CLK_ENABLE() __HAL_RCC_DMA1_CLK_ENABLE() 00299 00300 #define EEPROM_I2C_DMA_TX_IRQn DMA1_Stream4_IRQn 00301 #define EEPROM_I2C_DMA_RX_IRQn DMA1_Stream2_IRQn 00302 #define EEPROM_I2C_DMA_TX_IRQHandler DMA1_Stream4_IRQHandler 00303 #define EEPROM_I2C_DMA_RX_IRQHandler DMA1_Stream2_IRQHandler 00304 #define EEPROM_I2C_DMA_PREPRIO 0x0F 00305 /** 00306 * @} 00307 */ 00308 00309 #endif /* EE_M24LR64 */ 00310 00311 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_Exported_Macros STM32F429I DISCOVERY LOW LEVEL Exported Macros 00312 * @{ 00313 */ 00314 /** 00315 * @} 00316 */ 00317 00318 /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_Exported_Functions STM32F429I DISCOVERY LOW LEVEL Exported Functions 00319 * @{ 00320 */ 00321 uint32_t BSP_GetVersion(void); 00322 void BSP_LED_Init(Led_TypeDef Led); 00323 void BSP_LED_On(Led_TypeDef Led); 00324 void BSP_LED_Off(Led_TypeDef Led); 00325 void BSP_LED_Toggle(Led_TypeDef Led); 00326 void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode); 00327 uint32_t BSP_PB_GetState(Button_TypeDef Button); 00328 00329 /** 00330 * @} 00331 */ 00332 00333 /** 00334 * @} 00335 */ 00336 00337 /** 00338 * @} 00339 */ 00340 00341 /** 00342 * @} 00343 */ 00344 00345 #ifdef __cplusplus 00346 } 00347 #endif 00348 00349 #endif /* __STM32F429I_DISCOVERY_H */ 00350 00351 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Wed Nov 16 2022 21:12:51 by
