OpenEdv-开源电子网

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

TIME1如何使用?

[复制链接]

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2011-2-13
在线时间
10 小时
发表于 2011-2-18 11:46:22 | 显示全部楼层 |阅读模式
 您好:
      我是个初学者,根据您的代码定时器中断实验2,3,4的改写都调通了,但想使用一下TIME1确有问题,不知道那里还要设置,还有我发现MY_NVIC_Init()函数并不支持TIM1_UP_IRQHandler,TIM1_UP_IRQHandler等入口,谢谢.


void TIM1_UP_IRQHandler(void)
{
 if(TIM1->SR&0X0001)//溢出中断
 {
      LED1=!LED1;                   
 }      
 TIM1->SR&=~(1<<0);//清除中断标志位   
}

void Timerx_Init(u16 arr,u16 psc)
{
 RCC->APB2ENR|=1<<11;//TIM1时钟使能   
  TIM1->ARR=arr;  //设定计数器自动重装值//刚好1ms   
 TIM1->SC=psc;  //预分频器7200,得到10Khz的计数时钟
 //这两个东东要同时设置才可以使用中断
 TIM1->DIER|=1<<0;   //允许更新中断    
 TIM1->DIER|=1<<6;   //允许触发中断
              
 TIM1->CR1|=0x01;    //使能定时器1 
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

98

主题

408

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2010-12-14
在线时间
0 小时
发表于 2011-2-18 12:47:56 | 显示全部楼层
回复【楼主位】waronder:
-------------------------------
void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group);

stm32f10x_nvic.h中查找Channel:

#define TIM1_BRK_IRQChannel          ((u8)0x18)  /* TIM1 Break Interrupt */
#define TIM1_UP_IRQChannel           ((u8)0x19)  /* TIM1 Update Interrupt */
#define TIM1_TRG_COM_IRQChannel      ((u8)0x1A)  /* TIM1 Trigger and Commutation Interrupt */
#define TIM1_CC_IRQChannel           ((u8)0x1B)  /* TIM1 Capture Compare Interrupt */
#define TIM2_IRQChannel              ((u8)0x1C)  /* TIM2 global Interrupt */
#define TIM3_IRQChannel              ((u8)0x1D)  /* TIM3 global Interrupt */
#define TIM4_IRQChannel              ((u8)0x1E)  /* TIM4 global Interrupt */

请查看:《STM32中文参考手册V10》高级定时器那一章的内容!
希望openedv能给大家提供一个友好的技术交流平台!
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2011-2-13
在线时间
10 小时
 楼主| 发表于 2011-2-18 15:04:06 | 显示全部楼层
谢谢,调出来了,原来入口是使用stm32f10x_nvic.h的入口TIM1_UP_IRQChannel ,以前我一直以为用stm32f10x_it.h的入口TIM1_UP_IRQHandler.
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2011-9-8
在线时间
2 小时
发表于 2011-10-29 19:41:40 | 显示全部楼层
没用呀,我按你上面的试过、
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
发表于 2012-7-31 23:58:09 | 显示全部楼层

我也不会用 TIM1 定时中断..
那位大哥 帮忙??? 

回复 支持 反对

使用道具 举报

13

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2013-9-24
在线时间
75 小时
发表于 2014-10-13 23:39:59 | 显示全部楼层
回复【5楼】KBLEE:
---------------------------------
void TIM1_UP_IRQHandler(void)
{              
if(TIM1->SR&0X0001)//????????
{
LED1=!LED1;                    
}    
TIM1->SR&=~(1<<0);//????????±ê????      
}
//?¨???¨?±?÷??????????
//?????±????????APB1??2±?????APB1??36M
//arr??×?????×°????
//psc???±???¤·?????
//?????????????¨?±?÷3!
void Timerx_Init(u16 arr,u16 psc)
{
RCC->APB2ENR|=1<<11;//TIM3?±??????    
  TIM1->ARR=arr;  //?è?¨?????÷×?????×°??//????1ms    
TIM1->SC=psc;  //?¤·????÷7200,????10Khz???????±??
//???????????????±?è????????????????
TIM1->DIER|=1<<0;   //???í?ü??????
TIM1->DIER|=1<<6;   //???í??·?????
       
TIM1->CR1|=0x01;    //?????¨?±?÷3
   MY_NVIC_Init(1,3,TIM1_UP_IRQChannel,2);//????1??×???????3??×é2  
}
回复 支持 反对

使用道具 举报

5

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2014-9-27
在线时间
27 小时
发表于 2014-11-25 10:26:46 | 显示全部楼层
TIMER1和7是高级定时器,2,3,,4,5是通用的,有点不同哦。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-28 13:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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