第十五章:外部中断EXTI的配置注意事项

1,EXTI_InitTypeDef 定义于文件“stm32f10x_exti.h”:

typedef struct
{
u32 EXTI_Line;				//外部中断通用I/O映像 
EXTIMode_TypeDef EXTI_Mode;		//模式
EXTIrigger_TypeDef EXTI_Trigger;	//触发方式
FunctionalState EXTI_LineCmd;		//使能
} EXTI_InitTypeDef;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2,例子:

void EXTI_Configuration(void)
{
    EXTI_InitTypeDef EXTI_InitStructure;

    EXTI_ClearITPendingBit(EXTI_Line2);//清除外部中断线2中断挂起位,为了防止配置后无法马上产生中断服务、二异性
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource2);//选择 GPIO 管脚PC2用作外部中断线路

    EXTI_ClearITPendingBit(EXTI_Line5);//清除外部中断线5中断挂起位
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5); //选择 GPIO 管脚PC5用作外部中断线路

    EXTI_InitStructure.EXTI_Line=EXTI_Line2|EXTI_Line5;/*EXTI_Line选择了待使能或失能的外部线路,只能用'或'的形式给一个以上(即多个)线路选择  不能使用这种格式:(即使用两次EXTI_Line结构体)  EXTI_InitStructure.EXTI_Line=EXTI_Line5;EXTI_InitStructure.EXTI_Line=EXTI_Line2;*/

    EXTI_ClearITPendingBit(EXTI_Line5);
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5); 

    EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
    EXTI_InitStructure.EXTI_LineCmd=ENABLE;

    EXTI_Init(&EXTI_InitStructure);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值