NVIC_Init()
时间: 2023-09-13 18:02:31 浏览: 64
NVIC_Init()是一种在ARM Cortex-M处理器上配置中断向量表和中断优先级的函数。它是一个IT类问题。在调用NVIC_Init()函数之前,需要先使用NVIC_SetVector()函数将中断处理程序的地址存储在中断向量表中。然后,可以使用NVIC_SetPriority()函数设置中断的优先级。最后,使用NVIC_EnableIRQ()函数使能中断。
相关问题
NVIC_Init(&NVIC_InitStructure)详细解释
`NVIC_Init(&NVIC_InitStructure)` 是一个函数调用,用于将之前配置好的 NVIC_InitStructure 结构体参数传递给 NVIC_Init 函数,以完成 NVIC 的初始化配置。
在 ARM Cortex-M 系列微控制器中,NVIC_Init 函数用于将 NVIC_InitStructure 结构体中的配置参数应用到 NVIC 寄存器中,以启用中断并设置相应的优先级和优先级分组。
具体而言,`NVIC_Init` 函数将根据 NVIC_InitStructure 结构体中的配置信息,对 NVIC 相关寄存器进行设置,例如:
- `NVIC_InitStructure.NVIC_IRQChannel`:指定要配置的中断通道。
- `NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority`:设置中断通道的抢占优先级。
- `NVIC_InitStructure.NVIC_IRQChannelSubPriority`:设置中断通道的子优先级。
- `NVIC_InitStructure.NVIC_IRQChannelCmd`:启用或禁用中断通道。
通过调用 `NVIC_Init` 函数,可以将这些配置参数应用到相应的 NVIC 寄存器中,以使得中断配置生效。
需要注意的是,在调用 `NVIC_Init` 函数之前,需要先进行其他相关的初始化操作,例如对 NVIC_InitStructure 结构体进行赋值。另外,该函数的具体实现可能会因不同的微控制器厂商而有所差异,所以需要根据具体的芯片手册或参考相关的开发文档来使用该函数。
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
这也是一个IT类问题,该行代码是用于初始化NVIC的配置结构体NVIC_InitStruct的成员变量NVIC_IRQChannelPreemptionPriority,以便在后续的NVIC配置中使用。其中,NVIC是Nested Vectored Interrupt Controller的缩写,代表嵌套向量中断控制器,IRQ是Interrupt Request的缩写,代表中断请求,Channel是通道的意思,Preemption Priority是抢占优先级的意思。该代码指定了TIM2_IRQn中断通道的抢占优先级为0,用于后续NVIC中断配置。NVIC_InitStruct是一个NVIC配置结构体,包含了NVIC的各种配置参数,如中断通道、中断优先级等。通过对NVIC_InitStruct的配置,可以对NVIC进行灵活的控制。在该配置下,如果TIM2_IRQn中断被触发,NVIC会根据中断请求的优先级调用相应的中断处理函数进行处理。由于抢占优先级为0,因此TIM2_IRQn中断的优先级最高,可以打断其他中断处理函数的执行。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)