如何分配20个中断,因为只有16行可以配置为EXTI线路?

时间:2016-03-02 04:16:34

标签: interrupt stm32

我正在使用stm32f091xc控制器,我想将20条GPIO线配置为具有上升沿的EXTI线。如何配置这20条线,因为只有16条gpio线可以配置为EXTI线?

2 个答案:

答案 0 :(得分:1)

你做不到。只有16个外部中断 1 ,每个中断只能映射到一个GPIO。

您需要:

  • 对某些或所有这些GPIO上的事件进行轮询,而不是使用中断。

  • 找到一种方法来聚合外部硬件中某些GPIO上的事件,例如:通过对某些输入进行ORing。

  • 使用IO扩展器处理部分或全部这些输入。

1:从技术上讲,还有另外16个EXTI,但它们都用于内部事件,对你不会有帮助。

答案 1 :(得分:1)

你必须找到4个引脚,可以某种方式编程,以像EXTI源一样工作。一些想法:

  • UARTS可以在CTS状态更改时生成中断。
  • 计时器可以计算输入行的状态变化。如果自动重载值为1,则应在每个事件上生成中断。
  • 比较者输入