打印
[APM32F1]

APM32F103的中断优先级组如何使用

[复制链接]
62|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
银河漫步|  楼主 | 2025-5-9 15:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的!所以问题来了,
大家在项目中都使用哪个优先级组?

使用特权

评论回复
沙发
jobszheng| | 2025-5-9 18:56 | 只看该作者
我倒是一般会使用NVIC_PRIORITY_GROUP_3

使用特权

评论回复
板凳
幻影书记| | 2025-5-9 18:58 | 只看该作者
一直使用的示例里面的 NVIC_PRIORITY_GROUP_0 。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

16

帖子

1

粉丝