智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2006|回复: 2
打印 上一主题 下一主题

对于K60中断优先级设置失败,大家帮我看看是不是哪里漏了什么啊?

[复制链接]

12

主题

36

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2462
威望
1195
贡献
737
兑换币
754
注册时间
2016-7-3
在线时间
265 小时
毕业学校
CQUPT
跳转到指定楼层
1#
发表于 2017-5-31 21:08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现象:主要是超声波,当我不开定时器中断的时候,超声波接收到的数据都是正常的;但是一开定时器中断,收到的数据就会出现一个周期性的跳变。
芯片:用的是山外的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);


然后中断的使能是在要用的模块初始化的时候使能的。
然后不管怎样设置都不行,只要开着定时器中断,超声波收到的数据就会周期性跳变。
求给位大佬帮看看下啊。
回复

使用道具 举报

11

主题

368

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4377
威望
2287
贡献
1340
兑换币
1240
注册时间
2017-2-21
在线时间
375 小时
2#
发表于 2017-6-1 11:39:13 | 只看该作者
中断向量的编号的数量写错了吧,怎么写的是1
回复 支持 反对

使用道具 举报

12

主题

36

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2462
威望
1195
贡献
737
兑换币
754
注册时间
2016-7-3
在线时间
265 小时
毕业学校
CQUPT
3#
 楼主| 发表于 2017-6-1 12:53:21 | 只看该作者
星空_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 */

这都是直接赋值山外论坛那上面的。但是试了还是不行,完全不知道哪里还有问题啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 04:35 , Processed in 0.045356 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表