如何改变中断优先级

时间:2024-10-12 00:13:28

1、设置中断优先级的函数,CMISIS已经写好,并嵌入到了编译器中。

如何改变中断优先级

2、从上面函数可以看出,该函数有两个参数,IRQn是指要设置的中断向量,priority是中断优先级,优先级可以是0 1 2 3四个数,0的优先级最大,3的优先级最小。

如何改变中断优先级

3、输入中断优先级/** \brief Set Interrupt PriorityThe function sets the prior足毂忍珩ity of an interrupt.\note The priority cannot be set for every core interrupt.\param [in] IRQn Interrupt number.\param [in] priority Priority to set.

如何改变中断优先级

4、输入中断优先级SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |(((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }else {NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |(((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }。

如何改变中断优先级

5、同一执行优先级中的中断申请不止一个时,则有一个中断优先权排队问题。同一执行优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,优先权自高到低的顺序即外部中断0>定时/计数0>外部中断1>定时/计数1>串行接口。

如何改变中断优先级
© 手抄报圈