首页 > 解决方案 > 在 STM32 上使用 FreeRTOS 处理多个中断

问题描述

我的基于 MCU 的控制系统必须快速检查 18 个开关触点状态。我将使用 STM32F7 MCU,它最大有 16 个 int。处理程序。所以我决定使用IO expendar IC 和分组。现在我有 12 个 IO 外部中断,另外 2 个中断来自 IO 扩展器。此外,FreeRTOS 将具有用于通信的以太网、uart 和 canbus 任务。中断对系统来说非常重要。它们之间存在毫秒差异,我必须正确检测所有引脚状态。我需要针对这种情况的专家建议。

我的问题是:

标签: armstm32interruptinterrupt-handlingfreertos

解决方案


使用 IO 扩展器似乎是解决问题的错误方法(额外的复杂性和成本)。您不必为每个引脚分配一个专用的 ISR。只需在任何 GPIO 中断后读取 GPIOx_IDR 寄存器,然后检查相关位STM32 Datasheet


推荐阅读