• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

对中断优先级的困惑 设置抢占和响应有点不太理解

有花堪折 2019-08-05 浏览量:660
刚看了原子哥的中断优先级配置 有一些困惑
void USART1_Init(void)
{
        /*μúò»2½£o′ò¿aGPIO¡¢AFIO¡¢USART1μÄê±Öó*/
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);// |RCC_APB2Periph_AFIO
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        /*2¡¢3õê¼»ˉÏàó|μÄ′®¿úòy½Å*/
        Usart1_Gpio_Init();
        /*3¡¢ÅäÖÃ′®¿úÖD¶Ï*/
        NVIC_Configuration();
        /*4¡¢ÅäÖÃ′®¿úÄ£ê½*/
        Usart1_para_Config(9600);
       
}

void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
       
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//ÇàÕ¼óÅÏ輶3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //×óóÅÏ輶3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQí¨μàê1Äü
        NVIC_Init(&NVIC_InitStructure);        //¸ù¾YÖ¸¶¨μÄ2Îêy3õê¼»ˉVIC¼Ä′æÆ÷

}

比如上方代码不是设置分组为1吗?不应该是一位抢占3位响应么,那抢占优先级的范围是不是0-1 响应优先级是0-7 这里设置抢占为3 不是越限了吗?实在是很困惑,希望有师傅可以帮忙解答一下
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:2
  • 如果你拷贝的代码确定没问题的话,这里肯定写错了,实际运行可能会出现意想不到的错误。

  • 如果是分组为1,那么这里设置抢占优先级为3就没有意义的,这里应该是写错了

相关问题

问题达人换一批

对中断优先级的困惑 设置抢占和响应有点不太理解