__STATIC_INLINEvoid__NVIC_SetPriorityGrouping(uint32_tPriorityGroup){uint32_treg_value;uint32_tPriorityGroupTmp=(PriorityGroup&(uint32_t)0x07UL);/* only values 0..7 are used */reg_value=SCB->AIRCR;/* read old register configuration */reg_value&=~((uint32_t)(SCB_AIRCR_VECTKEY_Msk|SCB_AIRCR_PRIGROUP_Msk));/* clear bits to change */reg_value=(reg_value|((uint32_t)0x5FAUL<<SCB_AIRCR_VECTKEY_Pos)|(PriorityGroupTmp<<SCB_AIRCR_PRIGROUP_Pos));/* Insert write key and priority group */SCB->AIRCR=reg_value;}__STATIC_INLINEuint32_tNVIC_EncodePriority(uint32_tPriorityGroup,uint32_tPreemptPriority,uint32_tSubPriority){uint32_tPriorityGroupTmp=(PriorityGroup&(uint32_t)0x07UL);/* only values 0..7 are used */uint32_tPreemptPriorityBits;uint32_tSubPriorityBits;PreemptPriorityBits=((7UL-PriorityGroupTmp)>(uint32_t)(__NVIC_PRIO_BITS))?(uint32_t)(__NVIC_PRIO_BITS):(uint32_t)(7UL-PriorityGroupTmp);SubPriorityBits=((PriorityGroupTmp+(uint32_t)(__NVIC_PRIO_BITS))<(uint32_t)7UL)?(uint32_t)0UL:(uint32_t)((PriorityGroupTmp-7UL)+(uint32_t)(__NVIC_PRIO_BITS));return(((PreemptPriority&(uint32_t)((1UL<<(PreemptPriorityBits))-1UL))<<SubPriorityBits)|((SubPriority&(uint32_t)((1UL<<(SubPriorityBits))-1UL))));}__STATIC_INLINEvoid__NVIC_SetPriority(IRQn_TypeIRQn,uint32_tpriority){if((int32_t)(IRQn)>=0){NVIC->IPR[((uint32_t)IRQn)]=(uint8_t)((priority<<(8U-__NVIC_PRIO_BITS))&(uint32_t)0xFFUL);}else{SCB->SHPR[(((uint32_t)IRQn)&0xFUL)-4UL]=(uint8_t)((priority<<(8U-__NVIC_PRIO_BITS))&(uint32_t)0xFFUL);}}