NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 delay_init(); USART3_Init(9600);
时间: 2024-06-04 11:10:16 浏览: 20
这段代码主要是对中断优先级进行配置,并且初始化了延时函数和USART3串口通信模块,其中:
1. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2) 函数用于设置中断优先级分组为组2,即2位抢占优先级和2位响应优先级。这个函数在使用中断时必须先调用,以确保中断优先级的正确配置。
2. delay_init() 函数用于初始化延时函数,它是通过定时器来实现的。在使用延时函数前必须先调用该函数。
3. USART3_Init(9600) 函数用于初始化USART3串口通信模块,它包括了串口的波特率、数据位、停止位和校验位等设置。USART3是一种常用的串口通信方式,通过这个函数可以方便地进行串口通信。
相关问题
解释代码void NVIC_Configuration(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 }
这段代码是用来配置NVIC中断优先级分组的。NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器)是ARM Cortex-M系列处理器中的一个重要模块,用于管理和响应中断。NVIC中断优先级分组是指将NVIC中断分为抢占优先级和响应优先级两部分,并将它们分别分配给不同的中断信号。这段代码中,调用了STM32库函数`NVIC_PriorityGroupConfig`,将NVIC中断分组设置为2,即抢占优先级有2位,响应优先级有2位。这意味着在同一抢占优先级中,响应优先级高的中断会被优先处理。
SysTick_Init(72); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断优先级为两组 GPIO_Configuration(); EXTI_Configuration();
这段代码看起来像是初始化一些硬件和中断相关的内容。具体来说:
- `SysTick_Init(72)` 可能是初始化系统滴答定时器,让它以 1ms 的频率计时。参数 72 可能是指 CPU 的主频为 72MHz,用它来计算滴答定时器的计数值。
- `NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)` 是设置中断优先级分组。ARM Cortex-M 系列处理器支持将中断优先级分成多组,以便灵活地分配优先级。这里设置为 2 组,也就是高 4 位是组优先级,低 4 位是子优先级。
- `GPIO_Configuration()` 和 `EXTI_Configuration()` 可能是初始化一些 GPIO 和外部中断的配置,具体实现需要看函数定义和注释。可能包括设置 GPIO 的模式、速度、上下拉电阻、中断触发方式等等。