STM32固件库使用手册的中文翻译 下载本文

NVIC

NVIC_PriorityGroup_3

NVIC_PriorityGroup_4

0-7 0-15

0-1 0

先占优先级3位 从优先级1位 先占优先级4位 从优先级0位

1. 选中NVIC_PriorityGroup_0,则参数NVIC_IRQChannelPreemptionPriority对中断通道的设置不产生影响。

2. 选中NVIC_PriorityGroup_4,则参数NVIC_IRQChannelSubPriority对中断通道的设置不产生影响。

NVIC_IRQChannelCmd

该参数指定了在成员NVIC_IRQChannel中定义的IRQ通道被使能还是失能。这个参数取值为ENABLE或者DISABLE。 例:

NVIC_InitTypeDef NVIC_InitStructure; /* Configure the Priority Grouping with 1 bit */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

/* Enable TIM3 global interrupt with Preemption Priority 0 and Sub Priority as 2 */

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure(&NVIC_InitStructure);

/* Enable USART1 global interrupt with Preemption Priority 1 and Sub Priority as 5 */

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5; NVIC_InitStructure(&NVIC_InitStructure);

/* Enable RTC global interrupt with Preemption Priority 1 and Sub Priority as 7 */

NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 7; NVIC_InitStructure(&NVIC_InitStructure);

/* Enable EXTI4 interrupt with Preemption Priority 1 and Sub Priority as 7 */

NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 7; NVIC_InitStructure(&NVIC_InitStructure);

/* TIM3 interrupt priority is higher than USART1, RTC and EXTI4 interrupts priorities. USART1 interrupt priority is higher than RTC and EXTI4 interrupts priorities. RTC interrupt priority is higher than EXTI4 interrupt prioriy. */

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准

NVIC

13.2.5 函数NVIC_StructInit

Table 274. 描述了函数NVIC_StructInit Table 274. 函数NVIC_StructInit 函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 NVIC_StructInit

void NVIC_StructInit (NVIC_InitTypeDef* NVIC_InitStruct) 把NVIC_InitStruct中的每一个参数按缺省值填入

NVIC_InitStruct:指向结构NVIC_InitTypeDef的指针,待初始化 无 无 无 无 Table 275. 给出了NVIC_InitStruct各个成员的缺省值。

Table 275. NVIC_InitStruct缺省值 成员

NVIC_IRQChannel NVIC_IRQChannelPreemptionPriority NVIC_IRQChannelSubPriority NVIC_IRQChannelCmd 例:

/* The following example illustrates how to initialize a NVIC_InitTypeDef structure */ NVIC_InitTypeDef NVIC_InitStructure; NVIC_StructInit(&NVIC_InitStructure);

缺省值 0x0 0 0 DISABLE

13.2.6 函数NVIC_SETPRIMASK

Table 276. 描述了函数NVIC_SETPRIMASK Table 276. 函数NVIC_SETPRIMASK函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件

(1)(2)(3)

NVIC_SETPRIMASK void NVIC_SETPRIMASK(void) 使能PRIMASK优先级:提升执行优先级至0 无 无 无 无

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准

NVIC

被调用函数 __SETPRIMASK() 1. 该函数由汇编语言书写。

2. 该函数只影响组优先级,不影响从优先级。

3. 在设置PRIMASK寄存器前,建议在从为了使能一个例外中另一个例外返回时,清除该寄存器。 例:

/* Enable the PRIMASK priority */ NVIC_SETPRIMASK();

13.2.7 函数NVIC_RESETPRIMASK

Table 277. 描述了函数NVIC_RESETPRIMASK Table 277. 函数NVIC_RESETPRIMASK函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 NVIC_Init

void NVIC_RESETPRIMASK(void) 失能PRIMASK优先级 无 无 无 无

__RESETPRIMASK() (1)

1. 该函数由汇编语言书写。 例:

/* Disable the PRIMASK priority */ NVIC_RESETPRIMASK();

13.2.8 函数NVIC_SETFAULTMASK

Table 278. 描述了函数NVIC_SETFAULTMASK Table 278. 函数NVIC_SETFAULTMASK函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 (1)(2)(3)

NVIC_SETFAULTMASK void NVIC_SETFAULTMASK(void) 使能FAULTMASK优先级:提升执行优先级至-1 无 无 无 无

__SETFAULTMASK()

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准

NVIC

1. 该函数由汇编语言书写。

2. 该函数只影响组优先级,不影响从优先级。

3. FAULTMASK只有在执行优先级值小于-1的情况下才能被设置,设置FAULTMASK将它的执行优先级提升到HardFAULT的级别。每当从除NMI之外的例外中返回,FAULTMASK会被自动清除。 例:

/* Enable the FAULTMASK priority */ NVIC_SETFAULTMASK();

13.2.9 函数NVIC_RESETFAULTMASK

Table 279. 描述了函数NVIC_ RESETFAULTMASK Table 279. 函数NVIC_ RESETFAULTMASK函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 (1)

NVIC_RESETFAULTMASK void NVIC_RESETFAULTMASK(void) 失能FAULTMASK优先级 无 无 无 无

__RESETFAULTMASK() 1. 该函数由汇编语言书写。 例:

/* Enable the PRIMASK priority */ NVIC_RESETPRIMASK();

13.2.10 函数NVIC_BASEPRICONFIG

Table 280. 描述了函数NVIC_ BASEPRICONFIG Table 280. 函数NVIC_ BASEPRICONFIG函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 (1)(2)(3)

NVIC_ BASEPRICONFIG

void NVIC_BASEPRICONFIG(u32 NewPriority) 改变执行优先级从N(最低可设置优先级)提升至1 NewPriority:执行优先级的新优先级值 无 无 无

__BASEPRICONFIG()

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准