fsdfsdf
Fork of BSP_DISCO_F469NI by
Diff: stm32469i_discovery/stm32469i_discovery.h
- Revision:
- 0:0002c86c2220
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stm32469i_discovery/stm32469i_discovery.h Fri Dec 18 07:32:01 2015 +0000 @@ -0,0 +1,371 @@ +/** + ****************************************************************************** + * @file stm32469i_discovery.h + * @author MCD Application Team + * @version V1.0.1 + * @date 29-September-2015 + * @brief This file contains definitions for STM32469I-Discovery LEDs, + * push-buttons hardware resources. + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32469I_DISCOVERY_H +#define __STM32469I_DISCOVERY_H + +#ifdef __cplusplus + extern "C" { +#endif + + /* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +// mbed +void wait_ms(int ms); + +/** @addtogroup BSP + * @{ + */ + +/** @addtogroup STM32469I_Discovery + * @{ + */ + +/** @defgroup STM32469I_Discovery_LOW_LEVEL STM32469I-Discovery LOW LEVEL + * @{ + */ + +/** @defgroup STM32469I_Discovery_LOW_LEVEL_Exported_Types STM32469I Discovery Low Level Exported Types + * @{ + */ + +/** @brief Led_TypeDef + * STM32469I_Discovery board leds definitions. + */ +typedef enum +{ + DISCO_LED1 = 0, + DISCO_LED_GREEN = DISCO_LED1, + DISCO_LED2 = 1, + DISCO_LED_ORANGE = DISCO_LED2, + DISCO_LED3 = 2, + DISCO_LED_RED = DISCO_LED3, + DISCO_LED4 = 3, + DISCO_LED_BLUE = DISCO_LED4 + +} Led_TypeDef; + +/** @brief Button_TypeDef + * STM32469I_Discovery board Buttons definitions. + */ +typedef enum +{ + BUTTON_WAKEUP = 0 +} Button_TypeDef; + +#define BUTTON_USER BUTTON_WAKEUP + +/** @brief ButtonMode_TypeDef + * STM32469I_Discovery board Buttons Modes definitions. + */ +typedef enum +{ + BUTTON_MODE_GPIO = 0, + BUTTON_MODE_EXTI = 1 + +} ButtonMode_TypeDef; + +/** @addtogroup Exported_types + * @{ + */ +typedef enum +{ + PB_SET = 0, + PB_RESET = !PB_SET +} ButtonValue_TypeDef; + + +/** @brief DISCO_Status_TypeDef + * STM32469I_DISCO board Status return possible values. + */ +typedef enum +{ + DISCO_OK = 0, + DISCO_ERROR = 1 + +} DISCO_Status_TypeDef; + +/** + * @} + */ + +/** @defgroup STM32469I_Discovery_LOW_LEVEL_Exported_Constants STM32469I Discovery Low Level Exported Constants + * @{ + */ + + +/** @addtogroup STM32469I_Discovery_LOW_LEVEL_LED STM32469I Discovery Low Level Led + * @{ + */ +/* Always four leds for all revisions of Discovery boards */ +#define LEDn ((uint8_t)4) + + +/* 4 Leds are connected to MCU directly on PG6, PD4, PD5, PK3 */ +#define LED1_GPIO_PORT ((GPIO_TypeDef*)GPIOG) +#define LED2_GPIO_PORT ((GPIO_TypeDef*)GPIOD) +#define LED3_GPIO_PORT ((GPIO_TypeDef*)GPIOD) +#define LED4_GPIO_PORT ((GPIO_TypeDef*)GPIOK) + +#define LED1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE() +#define LED1_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE() +#define LED2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() +#define LED2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE() +#define LED3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() +#define LED3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE() +#define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOK_CLK_ENABLE() +#define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOK_CLK_DISABLE() + +#define LED1_PIN ((uint32_t)GPIO_PIN_6) +#define LED2_PIN ((uint32_t)GPIO_PIN_4) +#define LED3_PIN ((uint32_t)GPIO_PIN_5) +#define LED4_PIN ((uint32_t)GPIO_PIN_3) +/** + * @} + */ + +/** @addtogroup STM32469I_Discovery_LOW_LEVEL_BUTTON STM32469I Discovery Low Level Button + * @{ + */ +/* Only one User/Wakeup button */ +#define BUTTONn ((uint8_t)1) + +/** + * @brief Wakeup push-button + */ +#define WAKEUP_BUTTON_PIN GPIO_PIN_0 +#define WAKEUP_BUTTON_GPIO_PORT GPIOA +#define WAKEUP_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() +#define WAKEUP_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() +#define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn + +/* Define the USER button as an alias of the Wakeup button */ +#define USER_BUTTON_PIN WAKEUP_BUTTON_PIN +#define USER_BUTTON_GPIO_PORT WAKEUP_BUTTON_GPIO_PORT +#define USER_BUTTON_GPIO_CLK_ENABLE() WAKEUP_BUTTON_GPIO_CLK_ENABLE() +#define USER_BUTTON_GPIO_CLK_DISABLE() WAKEUP_BUTTON_GPIO_CLK_DISABLE() +#define USER_BUTTON_EXTI_IRQn WAKEUP_BUTTON_EXTI_IRQn + +#define BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() + +/** + * @} + */ + +/** + * @brief Discovery Pins definition + * TODO : to be modified/reviewed + */ +#define AUDIO_INT_PIN GPIO_PIN_7 +#define AUDIO_INT_PORT GPIOB +#define AUDIO_INT_PORT_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() + +#define OTG_FS1_OVER_CURRENT_PIN GPIO_PIN_7 +#define OTG_FS1_OVER_CURRENT_PORT GPIOB +#define OTG_FS1_OVER_CURRENT_PORT_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() + +#define OTG_FS1_POWER_SWITCH_PIN GPIO_PIN_2 +#define OTG_FS1_POWER_SWITCH_PORT GPIOB +#define OTG_FS1_POWER_SWITCH_PORT_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() + +/** + * @brief SD-detect signal + */ +#define SD_DETECT_PIN ((uint32_t)GPIO_PIN_2) +#define SD_DETECT_GPIO_PORT ((GPIO_TypeDef*)GPIOG) +#define SD_DETECT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE() +#define SD_DETECT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE() +#define SD_DETECT_EXTI_IRQn EXTI2_IRQn + +/** + * @brief TS_INT signal from TouchScreen when it is configured in interrupt mode + * GPIOJ5 is used for that purpose on Manta Dragon Discovery board + */ +#define TS_INT_PIN ((uint32_t)GPIO_PIN_5) +#define TS_INT_GPIO_PORT ((GPIO_TypeDef*)GPIOJ) +#define TS_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOJ_CLK_ENABLE() +#define TS_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOJ_CLK_DISABLE() +#define TS_INT_EXTI_IRQn EXTI9_5_IRQn + +/** + * @brief TouchScreen FT6206 Slave I2C address + */ +#define TS_I2C_ADDRESS ((uint16_t)0x54) + + +/** + * @brief Audio I2C Slave address + */ +#define AUDIO_I2C_ADDRESS ((uint16_t)0x94) + +/** + * @brief EEPROM I2C Slave address 1 + */ +#define EEPROM_I2C_ADDRESS_A01 ((uint16_t)0xA0) + +/** + * @brief EEPROM I2C Slave address 2 + */ +#define EEPROM_I2C_ADDRESS_A02 ((uint16_t)0xA6) + +/** + * @brief 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 I2C1_SCL_FREQ_KHZ +#define I2C1_SCL_FREQ_KHZ 400000 /*!< f(I2C_SCL) = 400 kHz */ +#endif /* I2C1_SCL_FREQ_KHZ */ + +/** + * @brief User can use this section to tailor I2C1/I2C1 instance used and associated + * resources. + * Definition for I2C1 clock resources + */ +#define DISCO_I2C1 I2C1 +#define DISCO_I2C1_CLK_ENABLE() __HAL_RCC_I2C1_CLK_ENABLE() +#define DISCO_DMAx_CLK_ENABLE() __HAL_RCC_DMA1_CLK_ENABLE() +#define DISCO_I2C1_SCL_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() + +#define DISCO_I2C1_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET() +#define DISCO_I2C1_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET() + +/** @brief Definition for I2C1 Pins + */ +#define DISCO_I2C1_SCL_PIN GPIO_PIN_8 /*!< PB8 */ +#define DISCO_I2C1_SCL_SDA_GPIO_PORT GPIOB +#define DISCO_I2C1_SCL_SDA_AF GPIO_AF4_I2C1 +#define DISCO_I2C1_SDA_PIN GPIO_PIN_9 /*!< PB9 */ + +/** @brief Definition of I2C interrupt requests + */ +#define DISCO_I2C1_EV_IRQn I2C1_EV_IRQn +#define DISCO_I2C1_ER_IRQn I2C1_ER_IRQn + + + +/** + * @brief I2C2 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 I2C2_SCL_FREQ_KHZ +#define I2C2_SCL_FREQ_KHZ 100000 /*!< f(I2C2_SCL) < 100 kHz */ +#endif /* I2C2_SCL_FREQ_KHZ */ + +/** + * @brief User can use this section to tailor I2C2/I2C2 instance used and associated + * resources (audio codec). + * Definition for I2C2 clock resources + */ +#define DISCO_I2C2 I2C2 +#define DISCO_I2C2_CLK_ENABLE() __HAL_RCC_I2C2_CLK_ENABLE() +#define DISCO_I2C2_SCL_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE() + +#define DISCO_I2C2_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET() +#define DISCO_I2C2_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET() + +/** @brief Definition for I2C2 Pins + */ +#define DISCO_I2C2_SCL_PIN GPIO_PIN_4 /*!< PH4 */ +#define DISCO_I2C2_SCL_SDA_GPIO_PORT GPIOH +#define DISCO_I2C2_SCL_SDA_AF GPIO_AF4_I2C2 +#define DISCO_I2C2_SDA_PIN GPIO_PIN_5 /*!< PH5 */ + +/** @brief Definition of I2C2 interrupt requests + */ +#define DISCO_I2C2_EV_IRQn I2C2_EV_IRQn +#define DISCO_I2C2_ER_IRQn I2C2_ER_IRQn + + +/** + * @} + */ + +/** @defgroup STM32469I_Discovery_LOW_LEVEL_Exported_Macros STM32469I Discovery Low Level Exported Macros + * @{ + */ +/** + * @} + */ + +/** @defgroup STM32469I_Discovery_LOW_LEVEL_Exported_Functions STM32469I Discovery Low Level Exported Functions + * @{ + */ +uint32_t BSP_GetVersion(void); +void BSP_LED_Init(Led_TypeDef Led); +void BSP_LED_DeInit(Led_TypeDef Led); +void BSP_LED_On(Led_TypeDef Led); +void BSP_LED_Off(Led_TypeDef Led); +void BSP_LED_Toggle(Led_TypeDef Led); +void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode); +void BSP_PB_DeInit(Button_TypeDef Button); +uint32_t BSP_PB_GetState(Button_TypeDef Button); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32469I_DISCOVERY_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/