/** ****************************************************************************** * @file stm32f429i_discovery.h * @author MCD Application Team * @brief This file contains definitions for STM32F429I-Discovery Kit LEDs, * push-buttons hardware resources. ****************************************************************************** * @attention * * Copyright (c) 2017 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* IMPORTANT: One of the following flags must be defined in the preprocessor */ /* options in order to select the target board revision: !!!!!!!!!! */ /* USE_STM32F429I_DISCO */ /* Applicable for all boards except STM32F429I DISCOVERY REVD and above */ /* USE_STM32F429I_DISCOVERY_REVD */ /* Applicable only for STM32F429I DISCOVERY REVD and above */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __STM32F429I_DISCOVERY_H #define __STM32F429I_DISCOVERY_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" /** @addtogroup BSP * @{ */ /** @addtogroup STM32F429I_DISCOVERY * @{ */ /** @addtogroup STM32F429I_DISCOVERY_LOW_LEVEL * @{ */ /** @addtogroup STM32F429I_DISCOVERY_LOW_LEVEL_Exported_Types STM32F429I DISCOVERY LOW LEVEL Exported Types * @{ */ typedef enum { LED3 = 0, LED4 = 1 } Led_TypeDef; typedef enum { BUTTON_KEY = 0, } Button_TypeDef; typedef enum { BUTTON_MODE_GPIO = 0, BUTTON_MODE_EXTI = 1 } ButtonMode_TypeDef; /** * @} */ /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_Exported_Constants STM32F429I DISCOVERY LOW LEVEL Exported Constants * @{ */ /** * @brief Define for STM32F429I_DISCO board */ #if !defined(USE_STM32F429I_DISCOVERY_REVD) && \ !defined(USE_STM32F429I_DISCO) #define USE_STM32F429I_DISCO #endif /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_LED STM32F429I DISCOVERY LOW LEVEL LED * @{ */ #define LEDn 2 #define LED3_PIN GPIO_PIN_13 #define LED3_GPIO_PORT GPIOG #define LED3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE() #define LED3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE() #define LED4_PIN GPIO_PIN_14 #define LED4_GPIO_PORT GPIOG #define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE() #define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE() #define LEDx_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) LED3_GPIO_CLK_ENABLE(); else \ if((__INDEX__) == 1) LED4_GPIO_CLK_ENABLE(); \ }while(0) #define LEDx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) LED3_GPIO_CLK_DISABLE(); else \ if((__INDEX__) == 1) LED4_GPIO_CLK_DISABLE(); \ }while(0) /** * @} */ /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_BUTTON STM32F429I DISCOVERY LOW LEVEL BUTTON * @{ */ #define BUTTONn 1 /** * @brief Wakeup push-button */ #define KEY_BUTTON_PIN GPIO_PIN_0 #define KEY_BUTTON_GPIO_PORT GPIOA #define KEY_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define KEY_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() #define KEY_BUTTON_EXTI_IRQn EXTI0_IRQn #define BUTTONx_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) KEY_BUTTON_GPIO_CLK_ENABLE(); \ }while(0) #define BUTTONx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) KEY_BUTTON_GPIO_CLK_DISABLE(); \ }while(0) /** * @} */ /** @defgroup STM32F429I_DISCOVERY_LOW_LEVEL_BUS STM32F429I DISCOVERY LOW LEVEL BUS * @{ */ /* Exported constanIO --------------------------------------------------------*/ #define IO_I2C_ADDRESS 0x82 #define TS_I2C_ADDRESS 0x82 #ifdef EE_M24LR64 #define EEPROM_I2C_ADDRESS_A01 0xA0 #define EEPROM_I2C_ADDRESS_A02 0xA6 #endif /* EE_M24LR64 */ /*############################### I2Cx #######################################*/ /* User can use this section to tailor I2Cx instance used and associated resources */ #define DISCOVERY_I2Cx I2C3 #define DISCOVERY_I2Cx_CLOCK_ENABLE() __HAL_RCC_I2C3_CLK_ENABLE() #define DISCOVERY_I2Cx_FORCE_RESET() __HAL_RCC_I2C3_FORCE_RESET() #define DISCOVERY_I2Cx_RELEASE_RESET() __HAL_RCC_I2C3_RELEASE_RESET() #define DISCOVERY_I2Cx_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define DISCOVERY_I2Cx_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define DISCOVERY_I2Cx_SDA_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() /* Definition for DISCO I2Cx Pins */ #define DISCOVERY_I2Cx_SCL_PIN GPIO_PIN_8 #define DISCOVERY_I2Cx_SCL_GPIO_PORT GPIOA #define DISCOVERY_I2Cx_SCL_SDA_AF GPIO_AF4_I2C3 #define DISCOVERY_I2Cx_SDA_PIN GPIO_PIN_9 #define DISCOVERY_I2Cx_SDA_GPIO_PORT GPIOC /* Definition for IOE I2Cx's NVIC */ #define DISCOVERY_I2Cx_EV_IRQn I2C3_EV_IRQn #define DISCOVERY_I2Cx_ER_IRQn I2C3_ER_IRQn /* I2C clock speed configuration (in Hz) WARNING: Make sure that this define is not already declared in other files. It can be used in parallel by other modules. */ #ifndef BSP_I2C_SPEED #define BSP_I2C_SPEED 100000 #endif /* BSP_I2C_SPEED */ #define I2Cx_TIMEOUT_MAX 0x3000 /*