ST社区自助问题 发表于 2017-6-12 10:15:20

TIM和USART怎样同时配置中断

NVIC配置中断的时候,配置一个TIM和一个USART的时候,TIM的中断就失效了呢?单独配置一个TIM就没有问题
下面这样配置就出错

//配置LED灯用的TIM4中断优先级
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

//配置LED灯用的TIM4中断优先级
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

zhao.zhao 发表于 2017-6-12 13:34:21

从贴出的程序看,这个没有问题,在其他地方找找问题吧

lkq550 发表于 2018-4-25 23:26:48

可能是优先级的原因 ,你现在配置的两个中断优先级是一样的,程序运行是可能会有冲突,你将TIM或者USART的NVIC_IRQChannelSubPriority配置成1试试!
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;

_瞬_ 发表于 2018-4-27 08:51:36

学习了!!!
页: [1]
查看完整版本: TIM和USART怎样同时配置中断