这是一个关于32单片机中断的问题,请大神赐教,谢谢
时间:10-02
整理:3721RD
点击:
我在读/写串口通信的时候在大的初始化函数中开启了和初始化了中断函数,也就是说我写了一遍中断的抢占优先级和子优先级,然而在主函数中却还要写设置中断分组函数这是为什么呢?(中断分组函数中不是也包含了抢占优先级和响应优先级吗,那岂不是与初始化里的重复了吗?还是我的理解有问题?)
只有中断分组才能实现抢占优先,否则不能抢占
那么以下这段程序中为什么也要写一遍抢占优先级和抢占子优先级呢?不是只有中断分组才能实现抢占优先吗?谢谢!(这是主函数之外的初始化程序中的中断初始化程序)
/************************************************
开启中断并且初始化
************************************************/
NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn; // 打开串口通道,即串口1;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1 ;//抢占优先级1
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; //抢占子优先级;
NVIC_Init(&NVIC_InitStruct);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //开启中断接收
}