多个中断在一起怎么配置啊!

2019-07-21 01:12发布

串口中断、外部中断1.外部中断2.还有定时器中断,一个有四个中断,我不知道是不是后面的配置把前面的配置给覆盖了,就是没有外部中断,但是我如拿出单个实现,外部中断又可行。 [mw_shl_code=c,true]void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* 配置中断使用组合1*/ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* USART*/ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /*TIM2*/ NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //选择中断通道2 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //抢占式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中断 NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; //选择中断通道3 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //抢占式中断优先级设置为1 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //响应式中断优先级设置为1 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中断 NVIC_Init(&NVIC_InitStructure);[/mw_shl_code] 这是中断向量配置
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
翱翔云端的鸟
1楼-- · 2019-07-21 21:01
回复【6楼】天才少年:
---------------------------------
不知道你在说哪个地方,不过我已经自己解决了,
翱翔云端的鸟
2楼-- · 2019-07-21 21:10
 精彩回答 2  元偷偷看……
zxj1302
3楼-- · 2019-07-22 01:41
 精彩回答 2  元偷偷看……
xiaowang
4楼-- · 2019-07-22 02:20
不错,学习了
daska110
5楼-- · 2019-07-22 04:05
为什么要起名字1.2.3.4?,如 NVIC_InitStructure3,这名字不会冲突把?
sworssman
6楼-- · 2019-07-22 05:36
一开始的问题在哪呢?回复【9楼】翱翔云端的鸟:
---------------------------------

一周热门 更多>