stm32中断怎样pending
2个回答
展开全部
ISPR[2]:全称是:Interrupt
Set-Pending
Registers,是一个中断挂起控制寄存器组。每个位对应的中断和ISER是一样的。通过置1,可以将正在进行的中断挂起,而执行同级或更高级别的中断。写0是无效的。
ICPR[2]:全称是:Interrupt
Clear-Pending
Registers,是一个中断解挂控制寄存器组。其作用与ISPR相反,对应位也和ISER是一样的。通过设置1,可以将挂起的中断接挂。写0无效。
当高优先级的中断正在执行中,如果发生了低优先级的中断,CPU自然会将低优先级中断挂起,当高优先级中断执行完毕后,再去处理低优先级中断,这个时候需要清除挂起位,采用库函数中的一个函数去处理就可以了
比如,EXTI_ClearITPendingBit()
Set-Pending
Registers,是一个中断挂起控制寄存器组。每个位对应的中断和ISER是一样的。通过置1,可以将正在进行的中断挂起,而执行同级或更高级别的中断。写0是无效的。
ICPR[2]:全称是:Interrupt
Clear-Pending
Registers,是一个中断解挂控制寄存器组。其作用与ISPR相反,对应位也和ISER是一样的。通过设置1,可以将挂起的中断接挂。写0无效。
当高优先级的中断正在执行中,如果发生了低优先级的中断,CPU自然会将低优先级中断挂起,当高优先级中断执行完毕后,再去处理低优先级中断,这个时候需要清除挂起位,采用库函数中的一个函数去处理就可以了
比如,EXTI_ClearITPendingBit()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询