1、GPIO中断控制,中断基本概念,中断(Interrupt)是MCU实时地处理内部或外部事件的一种机制。当某种内部或外部事件发生时,MCU的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。,GPIO中断简介,每个GPIO端口的中断都由1组7个寄存器来控制。通过这些寄存器可以选择中断源、中断极性以及边沿属性。当一个或多于一个GPIO输入产生中断时,只将一个中断输出发送到供所有GPIO端口使用的中断控制器。对于边沿触发中断,为了使能其他中断,软件必须清除该中断。对于电平触发中断,要求外部中断源保持电平不发生变化,以便中断能被控制器
2、识别。,GPIO中断控制的相关寄存器,GPIO中断检测寄存器,GPIOISGPIOIS(GPIO Interrupt Sense),offset 0 x404中断检测寄存器GPIOIS中设为1的位将相应的引脚配置成检测电平,而设为0的位将相应的引脚配置成检测边沿,所有位在复位时都清零。,GPIO中断控制的相关寄存器,GPIO中断双边沿寄存器,GPIOIBEGPIOIBE(GPIO Interrupt Both Edges),offset 0 x408当GPIO中断检测寄存器中相应的位设置成检测边沿时,中断双边沿寄存器GPIOIBE中设为1的位将相应的引脚配置成检测上升沿或下降沿,而不用考虑GP
3、IO中断事件寄存器GPIOIEV的相应位。将位清零会将该引脚配置成由GPIOIEV控制。所有位在复位时都清零。,GPIO中断控制的相关寄存器,GPIO中断事件寄存器,GPIOIEVGPIOIEV(GPIO Interrupt Event),offset 0 x40C中断事件寄存器GPIOIEV设为1的位将相应的引脚配置成检测上升沿或高电平,具体取决于GPIO中断检测(GPIOIS)寄存器中相应位的值。如果位清零,会将引脚配置成检测下降沿或低电平,具体取决于GPIOIS中相应位的值。所有位在复位时都清零。,GPIO中断控制的相关寄存器,GPIO中断屏蔽寄存器,GPIOIMGPIOIM(GPIO
4、Interrupt Mask),offset 0 x410通过GPIO中断屏蔽寄存器可以使能或禁止中断。把中断屏蔽寄存器中的位置1,将会允许其对应的引脚触发它们各自的中断并组合成GPIOINTR线。将位清零会禁止该引脚上的中断触发。所有位在复位时都清零。,GPIO中断控制的相关寄存器,GPIO原始中断状态寄存器,GPIORISGPIORIS(GPIO Raw Interrupt Status),offset 0 x414该寄存器表示GPIO引脚满足中断条件,但是不一定发送到控制器。该寄存器中置为1的位表示相应引脚的中断满足条件,置为0的位表示没有满足相应引脚的中断条件。,GPIO中断控制的相关寄存器,GPIO已屏蔽中断状态寄存器,GPIOMISGPIOMIS(GPIO Masked Interrupt Status),offset 0 x418该寄存器仅显示允许传送到控制器的中断条件。其中读作1的位反映了相应的GPIO线路发出中断,读作0的位表示没有产生中断或者屏蔽中断。,GPIO中断控制的相关寄存器,GPIO中断清除寄存器,GPIOICRGPIOICR(GPIO Interrupt Clear),offset 0 x41C写1到GPIO中断清除寄存器中的某一位可以清除相应中断,写0对相应的中断没什么影响,谢谢!,