微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 之 EXTI

STM32 之 EXTI

时间:12-03 来源:互联网 点击:

interrupt on falling edge */
EXTI_InitStructure_EXTI_LINE7.EXTI_Line=EXTI_Line7;//配置 使能或失能的外部线路
EXTI_InitStructure_EXTI_LINE7.EXTI_Mode=EXTI_Mode_Interrupt;//配置 EXTI线路为中断请求 (或者是事件请求)
EXTI_InitStructure_EXTI_LINE7.EXTI_Trigger=EXTI_Trigger_Falling;//配置 使能线路的触发边沿 -- 下降沿触发中断
EXTI_InitStructure_EXTI_LINE7.EXTI_LineCmd=ENABLE;//配置 状态为使能
EXTI_Init(&EXTI_InitStructure_EXTI_LINE7);// 初始化外部中断线路7

/* Generate software interrupt: simulate a falling edge applied on EXTI line 7 */
EXTI_GenerateSWInterrupt(EXTI_Line7);//线路7产生一个软件中断
}

/*******************************************************************************
* Function Name : SysTick_Config SysTick设置
* Description : Configures SysTick
* Input : None
* Output : None
* Return : None
*******************************************************************************/
voidSysTick_Config(void)
{
/* Disable SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Disable);

/* Disable the SysTick Interrupt */
SysTick_ITConfig(DISABLE);

/* Configure HCLK clock as SysTick clock source */
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);

/* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */
SysTick_SetReload(9000);

/* Enable the SysTick Interrupt */
SysTick_ITConfig(ENABLE);

}

/*******************************************************************************
* Function Name : 精确延时函数
*******************************************************************************/
voidDelay_Ms(u32nTime)
{
/* Enable the SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Enable);

TimingDelay=nTime;

while(TimingDelay!=0);

/* Disable SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Disable);
/* Clear SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Clear);
}

(4)stm32f10x_it.c

C语言:Codee#14818

/* Includes ------------------------------------------------------------------*/
#include "includes.h"
//#include "stm32f10x_it.h"

// ... ...

/*******************************************************************************
* Function Name : EXTI9_5_IRQHandler
* Description : This function handles External lines 9 to 5 interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
// LINE : 407
voidEXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line7)==SET)// 读取中断状态
{

LED1_HIGH;LED2_HIGH;LED3_HIGH;LED4_HIGH;// 灯全灭

EXTI_ClearITPendingBit(EXTI_Line7);// 清除标志位
}

}

// ... ...


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top