3.6 外部中断输入

LPC1700系列Cortex-M3微控制器包括4个外部中断输入作为可选的引脚功能。外部中断能够将CPU从掉电模式中唤醒。详情请参考“从低功耗模式中唤醒”章节的描述。想了解更多关于外部中断的使用?可以参考外部中断使用

3.6.1 寄存器描述

外部中断功能具有4个相关的寄存器。EXTINT寄存器包含中断标志。EXTMODE和EXTPOLAR寄存器用来指定引脚使用电平或边沿触发方式。如果你对更多细节感兴趣,可以查看这篇关于STM32的EXTI外部中断直接操作寄存器的文章。

表3.4 外部中断寄存器

| 名称 | 描述 | 访问 | 复位值 | 地址 |

|------|------|------|--------|------|

| EXTINT | 外部中断标志寄存器,包含EINT0、EINT1、EINT2和EINT3的中断标志。见表3.5 | R/W | 0x00 | 0x400F C140 |

| EXTMODE | 外部中断模式寄存器,控制每个引脚为边沿触发还是电平触发。见表3.6 | R/W | 0x00 | 0x400F C148 |

| EXTPOLAR | 外部中断极性寄存器,控制由每个引脚为哪种电平或边沿触发 | R/W | 0x00 | 0x400F C14C |

[1]复位值仅反映已使用位中保存的数据,它不包括保留位的内容。

3.6.2 外部中断标志寄存器(EXTINT - 0x400F C140)

当一个引脚选择使用外部中断功能时,该引脚上的电平或边沿(由EXTPOLAR和EXTMODE寄存器中的相应位来决定)将会置位EXTINT寄存器的中断标志。这会向NVIC提交相应的中断请求,如果引脚中断使能,则产生中断。通过向EXTINT寄存器的位EINT0~位EINT3写入1来将其清零。在电平触发模式下,中断只有在引脚处于无效状态时才能被清零。一旦EINT0~EINT3中的一位被置位且相应的代码开始执行(处理唤醒和/或外部中断)时,必须将EXTINT寄存器中的相应位清零。否则,在后面EINT引脚上触发的事件将不会被识别。注:只要外部中断操作模式(也就是,有效电平/边沿)发生变化(包括外部中断的初始化),那么EXTINT寄存器中相应的位必须被清零!详细内容请见“外部中断模式寄存器(EXTMODE – 0x400F C148)”和“外部中断极性寄存器(EXTPOLAR - 0x400F C14C)”。如果这些技术细节让你感到头晕目眩,可以下载外部中断.rar了解更多。

你想知道更多关于如何在实际应用中使用这些外部中断吗?外部中断实验代码外部中断实验程序可以为你提供实际操作的示例,帮助你更好地理解和应用这些寄存器。

是不是觉得自己已经掌握了外部中断的秘密?不妨再看看28335外部中断例程,巩固一下你的知识吧!