STM8S有5组IO端口,每组端口分别有若干引脚可以作为外部中断触发输入,分别为:
端口A: PA[6:2];端口B: PB[7:0];端口C: PC[7:0];端口D: PD[6:0];端口E: PE[7:0]。
每个端口可以有多个引脚触发中断,但同一个端口上不同引脚产生的中断信号都会进入同一个中断向量,如下表:
例如所有PB端口上的引脚产生的中断,都会进入中断向量0x00 8018指向的中断程序。
如果同一个端口上有多个引脚可以产生中断,例如楼主的PD0和PD2,都进入PD端口的中断处理程序,在PD中断处理程序中通过读PD端口的状态,并与进入中断之前PD端口的状态进行简单的对比,就可以知道是哪个引脚产生了中断条件。