stm32 中断设置

在书上看到一个例子:NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_ProiorityG... 在书上看到一个例子:
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_ProiorityGroup_1); //这一句

NVIC_InitStructure.NVIC_IRQChannel = TIM_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//这句
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //还有这句
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure) ;

如上注释的标志,第一句和后两句是什么关系?
展开
 我来答
moyanqd
2013-07-19
知道答主
回答量:24
采纳率:100%
帮助的人:5.8万
展开全部
NVIC_PriorityGroupConfig(NVIC_ProiorityGroup_1);//把应用程序中断复位控制寄存器的10-8位设位1,表示1位抢断优先级,3位表示子优先级
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;此处只能为0或1,因为1位来表示
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;此处可以是0-7,因为是3位表示

把TIM_IRQChanne的抢断优先级设为0,子优先级设为2,数字越小优先级越高,抢断优先级可以打断其他的中断,而子优先级不能
追问
你的意思是不是说TIM是先由NVIC_PriorityGroupConfig(NVIC_ProiorityGroup_1);决定优先级和子优先级的大小?然后真正设定TIM的优先级时可以在NVIC_PriorityGroupConfig中所设定的范围内任意选择?比如你说的1位表示和3位表示是由于NVIC_ProiorityGroup_1优先级是0~1,子优先级是0~7?
追答
对,就是这个意思
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式