| APM32F103的中断优先级组如何使用 极海APM32F103系列的MCU有中断优先级组的概念。通过查看代码可以看到极海官方定义了5个优先级。查看apm32f10x_misc.c/.h源文件,如下:
 
 /**
 * [url=home.php?mod=space&uid=247401]@brief[/url]   nvic priority group
 */
typedef enum
{
    NVIC_PRIORITY_GROUP_0 = 0x700,  /*!< 0 bits for pre-emption priority,4 bits for subpriority */
    NVIC_PRIORITY_GROUP_1 = 0x600,  /*!< 1 bits for pre-emption priority,3 bits for subpriority */
    NVIC_PRIORITY_GROUP_2 = 0x500,  /*!< 2 bits for pre-emption priority,2 bits for subpriority */
    NVIC_PRIORITY_GROUP_3 = 0x400,  /*!< 3 bits for pre-emption priority,1 bits for subpriority */
    NVIC_PRIORITY_GROUP_4 = 0x300   /*!< 4 bits for pre-emption priority,0 bits for subpriority */
} NVIC_PRIORITY_GROUP_T;
/*!
 * [url=home.php?mod=space&uid=247401]@brief[/url]     Configures the priority grouping: pre-emption priority and subpriority.
 *
 * @param     priorityGroup : specifies the priority grouping bits length.
 *                            This parameter can be one of the following values:
 *                            [url=home.php?mod=space&uid=2817080]@ARG[/url] NVIC_PRIORITY_GROUP_0
 *                            @arg NVIC_PRIORITY_GROUP_1
 *                            @arg NVIC_PRIORITY_GROUP_2
 *                            @arg NVIC_PRIORITY_GROUP_3
 *                            @arg NVIC_PRIORITY_GROUP_4
 *
 * @retval    None
 */
void NVIC_ConfigPriorityGroup(NVIC_PRIORITY_GROUP_T priorityGroup)
{
    SCB->AIRCR = AIRCR_VECTKEY_MASK | priorityGroup;
}
 我看极海官方示例里面,有用优先级2的,也有用优先级4的!所以问题来了,
 大家在项目中都使用哪个优先级组?
 
 
 |