NVIC->IP[nvic_irq] = (uint8_t)temp_priority; /* enable the selected IRQ */ NVIC->ISER[nvic_irq >> 0x05U] = (uint32_t)0x01U << (nvic_irq & (uint8_t)0x1FU); } nvic_irq为中断号,中断号可以通过gd32f30x.h获取,如下图所示,nvic_irq_pre_priority为抢占优先级配置,nvic_irq_su...
注意:如果中断优先级配置为2位抢占和2位此优先级的话,抢占优先级配置为4(二进制为100b),优先级配置越界,实际配置进去的优先级为0,最高优先级,因而明确中断优先级分组非常重要。 • 中断优先级配置 中断优先级配置采用以下函数。 C /*! \brief enable NVIC request \param[in] nvic_irq: the NVIC interrupt...
在GD32f10x_misc.c文件中,nvic_priority_group_set函数用于设置多少位用于抢占优先级,多少位用于子优先级;nvic_irq_enable函数用于设置相应中断的抢占优先级和子优先级的等级。比如现在要设置SPI0的中断,其抢占优先级和子优先级的位数均为2,抢占优先级的等级为0,子优先级 的等级为1,那么代码如代码清单SPI0...
中断优先级配置采用以下函数。复制 C /*!\brief enable NVIC request \param[in] nvic_irq: the...
nvic_irq_enable(EXTI0_1_IRQn, 2U); #elif defined GD32F4XX nvic_irq_enable(EXTI0_IRQn, 2U,0U); #elif defined GD32F1X0 || GD32F3X0 nvic_irq_enable(EXTI0_1_IRQn, 2U,0U); #endif /* connect key EXTI line to key GPIO pin */ ...
\param[in] nvic_irq: 中断源,如 \param[in] nvic_irq_pre_priority: 抢占优先级 \param[in] nvic_irq_sub_priority: 子优先级 \param[out] none \retval none */ void nvic_irq_enable(uint8_t nvic_irq, uint8_t nvic_irq_pre_priority, ...
4) TIMER4 中断优先级设置 在定时器中断使能之后,因为要产生中断,必不可少的要设置 NVIC 相关寄存器,设置中断优先级。通过nvic_irq_enable 函数实现中断优先级的设置。 针对TIMR4 初始化范例代码格式 nvic_irq_enable(TIMER4_IRQn, 1, 1); 5)允许 TIMER工作,也就是使能 TIMER ...
nvic_irq_enable(EXTI0_IRQn,1,1);//配置NVIC,中断通道,抢占和子优先级为1 } /* @brief:EXTI...
nvic_prigroup: 优先级组,详细列表如下: 2.2 nvic_irq_enable 以下GPIO 接口位于GD32F10x_Firmware_Library_V2.2.2\Firmware\GD32F10x_standard_peripheral\Include\gd32f10x_gpio.h。 2.3 gpio_exti_source_select 以下EXTI 接口位于GD32F10x_Firmware_Library_V2.2.2\Firmware\GD32F10x_standard_peripheral\Inc...