智能车制作
标题:
对于K60中断优先级设置失败,大家帮我看看是不是哪里漏了什么啊?
[打印本页]
作者:
ghj521
时间:
2017-5-31 21:08
标题:
对于K60中断优先级设置失败,大家帮我看看是不是哪里漏了什么啊?
现象:主要是超声波,当我不开定时器中断的时候,超声波接收到的数据都是正常的;但是一开定时器中断,收到的数据就会出现一个周期性的跳变。
芯片:用的是山外的K60FN系列芯片,当然使用的也是山外的库。
我的中断优先级设置如下:
NVIC_SetPriorityGrouping(1);
NVIC_SetPriority(INT_PORTC, 0);
NVIC_SetPriority(INT_PORTA, 8);
NVIC_SetPriority(INT_DMA0_DMA16, 9);
NVIC_SetPriority(INT_PIT0, 10);
NVIC_SetPriority(INT_UART3_RX_TX, 11);
NVIC_SetPriority(INT_UART0_RX_TX, 12);
也试过这样,最开始是这样,后来看不行才试了下上面那样
NVIC_SetPriorityGrouping(1);
NVIC_SetPriority(PORTC_VECTORn, 0);
NVIC_SetPriority(PORTA_VECTORn, 8);
NVIC_SetPriority(DMA0_VECTORn, 9);
NVIC_SetPriority(PIT0_VECTORn, 10);
NVIC_SetPriority(UART3_RX_TX_VECTORn, 11);
NVIC_SetPriority(UART0_RX_TX_VECTORn, 12);
然后中断的使能是在要用的模块初始化的时候使能的。
然后不管怎样设置都不行,只要开着定时器中断,超声波收到的数据就会周期性跳变。
求给位大佬帮看看下啊。
作者:
星空_xALOC
时间:
2017-6-1 11:39
中断向量的编号的数量写错了吧,怎么写的是1
作者:
ghj521
时间:
2017-6-1 12:53
星空_xALOC 发表于 2017-6-1 11:39
中断向量的编号的数量写错了吧,怎么写的是1
我也这样写过的:NVIC_SetPriorityGrouping(NVIC_PriorityGroup_1); //中断优先级分组
但是最开始这个东西没有定义NVIC_PriorityGroup_1。
我就在NVIC_SetPriorityGrouping这个函数之前,加了这些:
#define NVIC_PriorityGroup_0 ((uint32)0x7) /* 0 bits for pre-emption priority
4 bits for subpriority */
#define NVIC_PriorityGroup_1 ((uint32)0x6) /* 1 bits for pre-emption priority
3 bits for subpriority */
#define NVIC_PriorityGroup_2 ((uint32)0x5) /* 2 bits for pre-emption priority
2 bits for subpriority */
#define NVIC_PriorityGroup_3 ((uint32)0x4) /* 3 bits for pre-emption priority
1 bits for subpriority */
#define NVIC_PriorityGroup_4 ((uint32)0x3) /* 4 bits for pre-emption priority
0 bits for subpriority */
这都是直接赋值山外论坛那上面的。但是试了还是不行,完全不知道哪里还有问题啊?
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2