2025-11-08 05:40:34
STM32F103C8T6这个芯片能同时处理15个外部中断,每个中断对应一个GPIO口,但实际使用时可能受优先级影响。比如EXTI0到EXTI15这16个中断线,但EXTI15其实是复用功能,可能只能同时用15个。每个中断线可以连接多个GPIO口,但同一时间只能处理一个中断请求。
为什么是这个答案呢?首先看芯片手册里写明EXTI模块有16个中断线,但EXTI15只能用于复用功能,比如连接USB或CAN,所以实际能同时用15个。每个GPIO口可以配置成输入模式,比如PA0能接EXTI0,PB1能接EXTI1,这样每个中断线对应一个口。但程序里如果没设置优先级,多个中断同时触发时,系统会按优先级顺序处理,可能看起来像只能处理一个。比如手册第235页提到中断优先级分组和子分组,最高优先级的中断会先被处理。所以虽然硬件能同时接15个,但软件没处理好时可能冲突。比如同时触发EXTI0和EXTI1,系统会先处理优先级高的那个,另一个被暂时屏蔽,直到当前中断结束。这就是为什么实际使用中可能感觉数量少于15个的原因。
本题链接: