Stm32的中断在测试FREERTOS的时候的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stm32的中断在测试FREERTOS的时候的问题相关的知识,希望对你有一定的参考价值。

在测试FreeRTOS在stm32上运行的时候,需要用到timer的中断,则打开了中断,但是如下的代码则让系统死机:

/* 选择优先级分组0 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

/* 开启 TIM2 中断, 0级先占优先级,0级后占优先级 */
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

以上红色标注的优先级设置出问题。

修改如下,则ok

/* 选择优先级分组0 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

 

以上是关于Stm32的中断在测试FREERTOS的时候的问题的主要内容,如果未能解决你的问题,请参考以下文章

STM32 FreeRTOS - UART延迟中断问题

禁用中断让freeRTOS在stm32上运行

在 STM32 上使用 FreeRTOS 处理多个中断

带有 STM32 HAL 驱动程序的 FreeRTOS 中的 UART 中断

FreeRTOS STM32 集成

原子STM32带freeRTOS程序使用Timer3定时器时持续进入中断的问题解决