/stm32vldiscovery/STM32_Discovery.c
https://github.com/coon42legacy/flyfi_sd_midi · C · 195 lines · 40 code · 30 blank · 125 comment · 0 complexity · e85ee20e45412b7405e9575dd83c0b89 MD5 · raw file
- /**
- ******************************************************************************
- * @file STM32_Discovery.c
- * @author MCD Team
- * @version V0.1
- * @date 06/17/2010
- * @brief STM32_Discovery abstraction layer.
- * This file should be added to the main application to use the provided
- * functions that manage Leds, push-buttons, COM ports and low level
- * HW resources initialization of the different modules available on
- * STM32_Discovery boards from STMicroelectronics.
- ******************************************************************************
- * @copy
- *
- * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
- * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
- * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
- * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
- * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
- * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * <h2><center>© COPYRIGHT 2010 STMicroelectronics</center></h2>
- */
-
- /* Includes ------------------------------------------------------------------*/
- #include "STM32_Discovery.h"
-
- /** @defgroup STM32_Discovery_Private_TypesDefinitions
- * @{
- */
- /**
- * @}
- */
- /** @defgroup STM32_Discovery_Private_Defines
- * @{
- */
- /**
- * @}
- */
- /** @defgroup STM32_Discovery_Private_Macros
- * @{
- */
- /**
- * @}
- */
- /** @defgroup STM32_Discovery_Private_Variables
- * @{
- */
- GPIO_TypeDef* GPIO_PORT[LEDn] = {LED3_GPIO_PORT, LED4_GPIO_PORT};
- const uint16_t GPIO_PIN[LEDn] = {LED3_PIN, LED4_PIN};
- const uint32_t GPIO_CLK[LEDn] = {LED3_GPIO_CLK, LED4_GPIO_CLK};
- GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {USER_BUTTON_GPIO_PORT};
- const uint16_t BUTTON_PIN[BUTTONn] = {USER_BUTTON_PIN};
- const uint32_t BUTTON_CLK[BUTTONn] = {USER_BUTTON_GPIO_CLK};
- /** @defgroup STM32_Discovery_Private_FunctionPrototypes
- * @{
- */
- /**
- * @}
- */
- /** @defgroup STM32_Discovery_Private_Functions
- * @{
- */
- /**
- * @brief Configures LED GPIO.
- * @param Led: Specifies the Led to be configured.
- * This parameter can be one of following parameters:
- * @arg LED3
- * @arg LED4
- * @retval None
- */
- void STM32_Discovery_LEDInit(Led_TypeDef Led)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- /* Enable the GPIO_LED Clock */
- RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE);
- /* Configure the GPIO_LED pin */
- GPIO_InitStructure.GPIO_Pin = GPIO_PIN[Led];
-
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure);
- }
- /**
- * @brief Turns selected LED On.
- * @param Led: Specifies the Led to be set on.
- * This parameter can be one of following parameters:
- * @arg LED3
- * @arg LED4
- * @retval None
- */
- void STM32_Discovery_LEDOn(Led_TypeDef Led)
- {
- GPIO_PORT[Led]->BSRR = GPIO_PIN[Led];
- }
- /**
- * @brief Turns selected LED Off.
- * @param Led: Specifies the Led to be set off.
- * This parameter can be one of following parameters:
- * @arg LED3
- * @arg LED4
- * @retval None
- */
- void STM32_Discovery_LEDOff(Led_TypeDef Led)
- {
- GPIO_PORT[Led]->BRR = GPIO_PIN[Led];
- }
- /**
- * @brief Toggles the selected LED.
- * @param Led: Specifies the Led to be toggled.
- * This parameter can be one of following parameters:
- * @arg LED3
- * @arg LED4
- * @retval None
- */
- void STM32_Discovery_LEDToggle(Led_TypeDef Led)
- {
- GPIO_PORT[Led]->ODR ^= GPIO_PIN[Led];
- }
- /**
- * @brief Configures Button GPIO and EXTI Line.
- * @param Button: Specifies the Button to be configured.
- * This parameter can be one of following parameters:
- * @arg BUTTON_USER: USER Push Button
- * @param Button_Mode: Specifies Button mode.
- * This parameter can be one of following parameters:
- * @arg BUTTON_MODE_GPIO: Button will be used as simple IO
- * @arg BUTTON_MODE_EXTI: Button will be connected to EXTI line with interrupt
- * generation capability
- * @retval None
- */
- void STM32_Discovery_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- /* Enable the BUTTON Clock */
- RCC_APB2PeriphClockCmd(BUTTON_CLK[Button] | RCC_APB2Periph_AFIO, ENABLE);
- /* Configure Button pin as input floating */
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_InitStructure.GPIO_Pin = BUTTON_PIN[Button];
- GPIO_Init(BUTTON_PORT[Button], &GPIO_InitStructure);
- }
- /**
- * @brief Returns the selected Button state.
- * @param Button: Specifies the Button to be checked.
- * This parameter can be one of following parameters:
- * @arg BUTTON_USER: USER Push Button
- * @retval The Button GPIO pin value.
- */
- uint32_t STM32_Discovery_PBGetState(Button_TypeDef Button)
- {
- return GPIO_ReadInputDataBit(BUTTON_PORT[Button], BUTTON_PIN[Button]);
- }
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
-
- /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/