STM32F407标准库学习笔记-EXTI机制

EXTI相关机制

在这里插入图片描述
如上图所示,红色为自引脚传入的硬件电平信号,绿色为寄存器传来的软件电平信号;两者皆为 能够触发 中断/事件 的信号,交汇于或门,两者都可以单独向后面发出信号。即信号来源有软、硬两种。
蓝色线路 意为 将 或门传出的信号 视为中断信号,借助两个 且门 和两组对应的 屏蔽寄存器的 输出信号,实现蓝色通路,黄色断路;中断信号将传入NVIC控制器进一步处理,最终影响到CPU运行,程序上执行对应的中断处理函数。
黄色线路意为 将 或门传出信号 视为事件信号,通路与断路的原理同上,但最终只产生一个脉冲,输出给特定的外设(?),不会直接影响CPU的运行(?),由外设自行按设定处理(?)。
即信号理解有中断、事件两种。
23 意为 连线有23套,即共有23组EXTI。

  • 当你意图将信号来源设置为硬件时:
    你应该首先将硬件:引脚,与EXTI连接起来。
    在这里插入图片描述
    EXTI 0~15 线可选择连接到 不同组 同标号 的引脚 0-15 上,设置寄存器在SYSCFG模块中,一根线对应4个bit。EXTI 16至22固定连接在特定外设上,具体见参考手册10.2.5.记得打开SYSCFG模块的时钟。
  • 当你意图将信号来源设置为软件时:
    在你想要触发 中断/事件 时,在软件中断/事件寄存器上 与EXTI0~22线 对应的位,写1即可。
  • 结束中断
    在信号被视为中断后,挂起请求寄存器上对应 EXTI线 位会置1,相当于中断标志位,再次向该位写入1即可复位,同时,软件中断/事件寄存器上对应位也会被清零。
    中断的具体处理由NVIC控制,事件的具体处理由特定外设执行,EXTI只是连接/过滤器。
typedef struct
{
  uint32_t EXTI_Line;              
  EXTIMode_TypeDef EXTI_Mode;       
  EXTITrigger_TypeDef EXTI_Trigger; 
  FunctionalState EXTI_LineCmd;     
}EXTI_InitTypeDef;
依次为:
EXTI线,识别为中断还是事件,硬件来源时由哪一边沿触发,EXTI使能。
注意,最后的使能元素仅在软件中有意义,在EXTI的寄存器中,没有对应的功能位,这和GPIO不同。
在硬件上使能中断的功能在NVIC里,硬件上唤起/判定/清除中断的功能在EXTI中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值