diff --git a/app/inc/main.h b/app/inc/main.h
index 19d601f..274ed95 100644
--- a/app/inc/main.h
+++ b/app/inc/main.h
@@ -1,6 +1,6 @@
/**
******************************************************************************
- * @file Template/main.h
+ * @file main.h
* @author MCD Application Team
* @version V1.0.0
* @date 20-September-2013
@@ -30,11 +30,13 @@
#define __MAIN_H
/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx.h"
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
+void TimingDelay_Decrement(void);
#endif /* __MAIN_H */
diff --git a/app/inc/stm32f4xx_conf.h b/app/inc/stm32f4xx_conf.h
new file mode 100755
index 0000000..967759c
--- /dev/null
+++ b/app/inc/stm32f4xx_conf.h
@@ -0,0 +1,102 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_conf.h
+ * @author MCD Application Team
+ * @version V1.0.1
+ * @date 11-November-2013
+ * @brief Library configuration file.
+ ******************************************************************************
+ * @attention
+ *
+ *
© COPYRIGHT 2013 STMicroelectronics
+ *
+ * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.st.com/software_license_agreement_liberty_v2
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_CONF_H
+#define __STM32F4xx_CONF_H
+
+#if defined (HSE_VALUE)
+/* Redefine the HSE value; it's equal to 8 MHz on the STM32F429I-DISCO Kit */
+ #undef HSE_VALUE
+ #define HSE_VALUE ((uint32_t)8000000)
+#endif /* HSE_VALUE */
+
+/* Includes ------------------------------------------------------------------*/
+/* Uncomment the line below to enable peripheral header file inclusion */
+#include "stm32f4xx_adc.h"
+#include "stm32f4xx_can.h"
+#include "stm32f4xx_crc.h"
+#include "stm32f4xx_cryp.h"
+#include "stm32f4xx_dac.h"
+#include "stm32f4xx_dbgmcu.h"
+#include "stm32f4xx_dcmi.h"
+#include "stm32f4xx_dma.h"
+#include "stm32f4xx_exti.h"
+#include "stm32f4xx_flash.h"
+#include "stm32f4xx_ltdc.h"
+#include "stm32f4xx_dma2d.h"
+#include "stm32f4xx_fmc.h"
+#include "stm32f4xx_hash.h"
+#include "stm32f4xx_gpio.h"
+#include "stm32f4xx_i2c.h"
+#include "stm32f4xx_iwdg.h"
+#include "stm32f4xx_pwr.h"
+#include "stm32f4xx_rcc.h"
+#include "stm32f4xx_rng.h"
+#include "stm32f4xx_rtc.h"
+#include "stm32f4xx_sdio.h"
+#include "stm32f4xx_spi.h"
+#include "stm32f4xx_syscfg.h"
+#include "stm32f4xx_tim.h"
+#include "stm32f4xx_usart.h"
+#include "stm32f4xx_wwdg.h"
+#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* If an external clock source is used, then the value of the following define
+ should be set to the value of the external clock source, else, if no external
+ clock is used, keep this define commented */
+/*#define I2S_EXTERNAL_CLOCK_VAL 12288000 */ /* Value of the external clock in Hz */
+
+
+/* Uncomment the line below to expanse the "assert_param" macro in the
+ Standard Peripheral Library drivers code */
+/* #define USE_FULL_ASSERT 1 */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr: If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+ #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+ void assert_failed(uint8_t* file, uint32_t line);
+#else
+ #define assert_param(expr) ((void)0)
+#endif /* USE_FULL_ASSERT */
+
+#endif /* __STM32F4xx_CONF_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/app/inc/stm32f4xx_init.h b/app/inc/stm32f4xx_init.h
new file mode 100644
index 0000000..e4a3f78
--- /dev/null
+++ b/app/inc/stm32f4xx_init.h
@@ -0,0 +1,70 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_clock.h
+ * @author MCD Application Team
+ * @version V1.0.1
+ * @date 11-November-2013
+ * @brief Library configuration file.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT 2013 STMicroelectronics
+ *
+ * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.st.com/software_license_agreement_liberty_v2
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_INIT_H
+#define __STM32F4xx_INIT_H
+
+/* Includes ------------------------------------------------------------------*/
+/* Uncomment the line below to enable peripheral header file inclusion */
+#include "stm32f4xx.h"
+#include "stm32f4xx_rcc.h"
+
+/* Exported types ------------------------------------------------------------*/
+typedef enum
+{
+ LED3 = 0,
+ LED4 = 1
+} Led_TypeDef;
+
+typedef enum
+{
+ BUTTON_USER = 0,
+} Button_TypeDef;
+
+typedef enum
+{
+ BUTTON_MODE_GPIO = 0,
+ BUTTON_MODE_EXTI = 1
+} ButtonMode_TypeDef;
+
+/* Exported constants --------------------------------------------------------*/
+
+
+/* Exported macro ------------------------------------------------------------*/
+
+/* Exported functions ------------------------------------------------------- */
+void Delay_Init(void);
+void LED_Init(Led_TypeDef Led);
+
+void LED_Toggle(Led_TypeDef Led);
+void LED_On(Led_TypeDef Led);
+void LED_Off(Led_TypeDef Led);
+
+#endif /* __STM32F4xx_INIT_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/app/inc/stm32f4xx_it.h b/app/inc/stm32f4xx_it.h
new file mode 100755
index 0000000..e9ac89e
--- /dev/null
+++ b/app/inc/stm32f4xx_it.h
@@ -0,0 +1,59 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.h
+ * @author MCD Application Team
+ * @version V1.0.1
+ * @date 11-November-2013
+ * @brief This file contains the headers of the interrupt handlers.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT 2013 STMicroelectronics
+ *
+ * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.st.com/software_license_agreement_liberty_v2
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_IT_H
+#define __STM32F4xx_IT_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+void NMI_Handler(void);
+void HardFault_Handler(void);
+void MemManage_Handler(void);
+void BusFault_Handler(void);
+void UsageFault_Handler(void);
+void SVC_Handler(void);
+void DebugMon_Handler(void);
+void PendSV_Handler(void);
+void SysTick_Handler(void);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_IT_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/app/src/main.c b/app/src/main.c
index af5ed8f..fdf8481 100644
--- a/app/src/main.c
+++ b/app/src/main.c
@@ -1,6 +1,6 @@
/**
******************************************************************************
- * @file Template/main.c
+ * @file main.c
* @author MCD Application Team
* @version V1.0.0
* @date 20-September-2013
@@ -26,6 +26,7 @@
*/
/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_init.h"
#include "main.h"
/** @addtogroup Template
@@ -36,10 +37,30 @@
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
+static __IO uint32_t TimingDelay;
+
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
+void Delay(__IO uint32_t nTime)
+{
+ TimingDelay = nTime;
+
+ while(TimingDelay != 0);
+}
+/**
+ * @brief Decrements the TimingDelay variable.
+ * @param None
+ * @retval None
+ */
+void TimingDelay_Decrement(void)
+{
+ if (TimingDelay != 0)
+ {
+ TimingDelay--;
+ }
+}
/**
* @brief Main program
* @param None
@@ -55,10 +76,19 @@ int main(void)
*/
/* Add your application code here */
-
+ Delay_Init();
+ LED_Init(LED3);
+ LED_Init(LED4);
+
+ LED_On(LED3);
+
/* Infinite loop */
while (1)
{
+ LED_Toggle(LED3);
+ LED_Toggle(LED4);
+
+ Delay(50);
}
}
diff --git a/app/src/stm32f4xx_init.c b/app/src/stm32f4xx_init.c
new file mode 100644
index 0000000..bcbca66
--- /dev/null
+++ b/app/src/stm32f4xx_init.c
@@ -0,0 +1,138 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_init.c
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 20-September-2013
+ * @brief Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT 2013 STMicroelectronics
+ *
+ * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.st.com/software_license_agreement_liberty_v2
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_init.h"
+
+/** @addtogroup Template
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+
+/* Private define ------------------------------------------------------------*/
+#define LEDn 2
+
+#define LED3_PIN GPIO_Pin_13
+#define LED3_GPIO_PORT GPIOG
+#define LED3_GPIO_CLK RCC_AHB1Periph_GPIOG
+
+#define LED4_PIN GPIO_Pin_14
+#define LED4_GPIO_PORT GPIOG
+#define LED4_GPIO_CLK RCC_AHB1Periph_GPIOG
+
+#define BUTTONn 1
+
+/**
+ * @brief Wakeup push-button
+ */
+#define USER_BUTTON_PIN GPIO_Pin_0
+#define USER_BUTTON_GPIO_PORT GPIOA
+#define USER_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOA
+#define USER_BUTTON_EXTI_LINE EXTI_Line0
+#define USER_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOA
+#define USER_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource0
+#define USER_BUTTON_EXTI_IRQn EXTI0_IRQn
+
+/* Private macro -------------------------------------------------------------*/
+
+/* 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};
+
+const uint16_t BUTTON_EXTI_LINE[BUTTONn] = {USER_BUTTON_EXTI_LINE};
+
+const uint8_t BUTTON_PORT_SOURCE[BUTTONn] = {USER_BUTTON_EXTI_PORT_SOURCE};
+
+const uint8_t BUTTON_PIN_SOURCE[BUTTONn] = {USER_BUTTON_EXTI_PIN_SOURCE};
+const uint8_t BUTTON_IRQn[BUTTONn] = {USER_BUTTON_EXTI_IRQn};
+/* Private function prototypes -----------------------------------------------*/
+
+/* Private functions ---------------------------------------------------------*/
+
+/**
+ * @brief Main program
+ * @param None
+ * @retval None
+ */
+void Delay_Init(void)
+{
+ RCC_ClocksTypeDef RCC_Clocks;
+ RCC_GetClocksFreq(&RCC_Clocks); /* get system clock */
+ /* while loop takes 4 cycles */
+ /* Enable SysTick for Delay function */
+ if (SysTick_Config(SystemCoreClock / 1000)) //1ms
+ {
+ /* Capture error */
+ while (1);
+ }
+}
+
+void LED_Init(Led_TypeDef Led)
+{
+ GPIO_InitTypeDef GPIO_InitStructure;
+
+ /* Enable the GPIO_LED Clock */
+ RCC_AHB1PeriphClockCmd(GPIO_CLK[Led], ENABLE);
+
+ /* Configure the GPIO_LED pin */
+ GPIO_InitStructure.GPIO_Pin = GPIO_PIN[Led];
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
+ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
+ GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
+ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
+ GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure);
+}
+
+void LED_Toggle(Led_TypeDef Led)
+{
+ GPIO_PORT[Led]->ODR ^= GPIO_PIN[Led];
+}
+
+void LED_On(Led_TypeDef Led)
+{
+ GPIO_PORT[Led]->BSRRL = GPIO_PIN[Led];
+}
+
+void LED_Off(Led_TypeDef Led)
+{
+ GPIO_PORT[Led]->BSRRH = GPIO_PIN[Led];
+}
+
+/**
+ * @}
+ */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/app/src/stm32f4xx_it.c b/app/src/stm32f4xx_it.c
new file mode 100755
index 0000000..ee0b1f9
--- /dev/null
+++ b/app/src/stm32f4xx_it.c
@@ -0,0 +1,176 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.c
+ * @author MCD Application Team
+ * @version V1.0.1
+ * @date 11-November-2013
+ * @brief Main Interrupt Service Routines.
+ * This file provides template for all exceptions handler and
+ * peripherals interrupt service routine.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT 2013 STMicroelectronics
+ *
+ * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.st.com/software_license_agreement_liberty_v2
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_it.h"
+#include "main.h"
+
+/** @addtogroup STM32F429I_DISCOVERY_Examples
+ * @{
+ */
+
+/** @addtogroup SysTick_Example
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+/* Cortex-M4 Processor Exceptions Handlers */
+/******************************************************************************/
+
+/**
+ * @brief This function handles NMI exception.
+ * @param None
+ * @retval None
+ */
+void NMI_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Hard Fault exception.
+ * @param None
+ * @retval None
+ */
+void HardFault_Handler(void)
+{
+ /* Go to infinite loop when Hard Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Memory Manage exception.
+ * @param None
+ * @retval None
+ */
+void MemManage_Handler(void)
+{
+ /* Go to infinite loop when Memory Manage exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Bus Fault exception.
+ * @param None
+ * @retval None
+ */
+void BusFault_Handler(void)
+{
+ /* Go to infinite loop when Bus Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Usage Fault exception.
+ * @param None
+ * @retval None
+ */
+void UsageFault_Handler(void)
+{
+ /* Go to infinite loop when Usage Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles SVCall exception.
+ * @param None
+ * @retval None
+ */
+void SVC_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Debug Monitor exception.
+ * @param None
+ * @retval None
+ */
+void DebugMon_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles PendSVC exception.
+ * @param None
+ * @retval None
+ */
+void PendSV_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles SysTick Handler.
+ * @param None
+ * @retval None
+ */
+void SysTick_Handler(void)
+{
+ TimingDelay_Decrement();
+}
+
+/******************************************************************************/
+/* STM32F4xx Peripherals Interrupt Handlers */
+/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
+/* available peripheral interrupt handler's name please refer to the startup */
+/* file (startup_stm32f429_439xx.s). */
+/******************************************************************************/
+/**
+ * @brief This function handles PPP interrupt request.
+ * @param None
+ * @retval None
+ */
+/*void PPP_IRQHandler(void)
+{
+}*/
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/