- static void EXTILine0_Config(void);
- static void EXTILine13_15_Config(void);
-
- /* Private functions ---------------------------------------------------------*/
-
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] Main program
- * @param None
- * @retval None
- */
- int main(void)
- {
- /* Initialize LEDs mounted on EVAL board */
- STM_EVAL_LEDInit(LED1);
- STM_EVAL_LEDInit(LED2);
-
- /* Configure EXTI Line0 (connected to PA0 pin) in interrupt mode */
- EXTILine0_Config();
-
- /* Configure EXTI Line13/15 (connected to PG13/15 pin) in interrupt mode
- according to EVAL used */
- EXTILine13_15_Config();
-
- /* Generate software interrupt: simulate a falling edge applied on EXTI0 line */
- EXTI_GenerateSWInterrupt(EXTI_Line0);
-
- while (1)
- {
- }
- }
-
- /**
- * @brief Configures EXTI Line0 (connected to PA0 pin) in interrupt mode
- * @param None
- * @retval None
- */
- static void EXTILine0_Config(void)
- {
- EXTI_InitTypeDef EXTI_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
-
- /* Enable GPIOA clock */
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
- /* Enable SYSCFG clock */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
-
- /* Configure PA0 pin as input floating */
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- /* Connect EXTI Line0 to PA0 pin */
- SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
-
- /* Configure EXTI Line0 */
- EXTI_InitStructure.EXTI_Line = EXTI_Line0;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
-
- /* Enable and set EXTI Line0 Interrupt to the lowest priority */
- NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- }
-
- /**
- * @brief Configures EXTI Line15 (connected to PG15 pin) in interrupt mode
- * @param None
- * @retval None
- */
- static void EXTILine13_15_Config(void)
- {
- EXTI_InitTypeDef EXTI_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
-
- #ifdef USE_STM324x9I_EVAL
- /* Enable GPIOC clock */
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
- #else
- /* Enable GPIOG clock */
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
- #endif /* USE_STM324x9I_EVAL */
-
- /* Enable SYSCFG clock */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
-
- /* Configure PG15 pin as input floating */
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
- #ifdef USE_STM324x9I_EVAL
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- #else
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
- GPIO_Init(GPIOG, &GPIO_InitStructure);
- #endif /* USE_STM324x9I_EVAL */
-
- /* Connect EXTI Line15 to PG15 pin */
- #ifdef USE_STM324x9I_EVAL
- SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
- #else
- SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOG, EXTI_PinSource15);
- #endif /* USE_STM324x9I_EVAL */
-
- /* Configure EXTI Line15 */
- #ifdef USE_STM324x9I_EVAL
- EXTI_InitStructure.EXTI_Line = EXTI_Line13;
- #else
- EXTI_InitStructure.EXTI_Line = EXTI_Line15;
- #endif /* USE_STM324x9I_EVAL */
-
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
-
- /* Enable and set EXTI15_10 Interrupt to the lowest priority */
- NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
-
- NVIC_Init(&NVIC_InitStructure);
- }
|