OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5172|回复: 7

定时器1的中断优先级设置问题

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-4-27
在线时间
2 小时
发表于 2016-1-15 20:30:26 | 显示全部楼层 |阅读模式
本帖最后由 赏你个电机拳 于 2016-1-15 21:07 编辑

file:///C:\Users\Lenovo\AppData\Roaming\Tencent\Users\1412576601\QQ\WinTemp\RichOle\P(]R{6~TY]4_W~HT%{)WLY6.png



NVIC_InitStructure.NVIC_IRQChannel = TIM1_IRQn;  //TIM1中断 就出错了
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;  //TIM2中断 就没问题,我想问一下这是什么情况,我希望就是在定时器1的初始化函数里对定时器1进行中断优先级NVIC设置,就卡在这里


定时器1配置优先级

定时器1配置优先级
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

354

主题

1475

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8097
金钱
8097
注册时间
2015-10-15
在线时间
2919 小时
发表于 2016-1-15 21:10:22 | 显示全部楼层
为什么TIM2_IRQn可以呢?肯定是哪里有规定,所以你可以在你的工程里面搜索TIM2_IRQn必定可以找到他的来源。

搜索出来是在stm32f10x.h里面。
同理,找到TIM1的
TIM1是高级定时器,跟TIM2有所区别。。。可用的位:
  TIM1_BRK_IRQn               = 24,     /*!< TIM1 Break Interrupt                                 */
  TIM1_UP_IRQn                = 25,     /*!< TIM1 Update Interrupt                                */
  TIM1_TRG_COM_IRQn           = 26,     /*!< TIM1 Trigger and Commutation Interrupt               */
  TIM1_CC_IRQn                = 27,     /*!< TIM1 Capture Compare Interrupt                       */
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 1 反对 0

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-1-15 20:33:57 | 显示全部楼层
你这代码究竟是TIM1、TIM2还是TIM3.。。。??

太乱了
坚决不用寄存器,拒绝重复造轮子。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-4-27
在线时间
2 小时
 楼主| 发表于 2016-1-15 20:49:19 | 显示全部楼层
不好意思,就是我学习原子的程序,通过改TIM3改成TIM2,再从TIM2改成TIM1,发现TIM1是高级定时器,TIM1配置中断优先级就出错了,不知道这么改了
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-4-27
在线时间
2 小时
 楼主| 发表于 2016-1-15 20:56:39 | 显示全部楼层
        //中断优先级NVIC设置
        NVIC_InitStructure.NVIC_IRQChannel = TIM1_IRQn;  //TIM1中断
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;  //先占优先级1级
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
        NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器
        TIM_Cmd(TIM1, ENABLE);  //使能TIM1                                                    
就是我大概想的效果,但是TIM1_IRQn被标出错了,改回TIM2_IRQn就没问题,我不知道什么问题
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-4-27
在线时间
2 小时
 楼主| 发表于 2016-1-15 21:03:57 | 显示全部楼层
求助,各位大神
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-4-27
在线时间
2 小时
 楼主| 发表于 2016-1-15 21:29:13 | 显示全部楼层
openedvadmin 发表于 2016-1-15 21:10
为什么TIM2_IRQn可以呢?肯定是哪里有规定,所以你可以在你的工程里面搜索TIM2_IRQn必定可以找到他的来源。 ...

谢谢,你的帮助
回复 支持 反对

使用道具 举报

3

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2015-3-7
在线时间
43 小时
发表于 2016-1-15 21:47:03 | 显示全部楼层

编译的时候提示什么错误?
为人莫作千年计,三十河东四十西,莫欺少年穷。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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