[STM32F0] 请教个问题;怎样打开STM32F030K6的定时器TIM3中断(寄存器操作方

[复制链接]
6021|9
 楼主| hopewise 发表于 2014-11-22 16:28 | 显示全部楼层 |阅读模式
/***********************************
* 名称:     TIM3_Init()
* 功能:     TIM3初始化子程序
* 入口参数: 无
* 出口参数: 无
* 说明:                                            
************************************/
void TIM3_Init()
{
         RCC->APB1ENR|=1<<1;        //TIM3时钟使能  
         TIM3->ARR=11719;       //定时500ms   
         TIM3->PSC=10;             //11分频(10+1)  
         TIM3->DIER|=1<<0;      //允许更新中断  
         TIM3->CR1|=0x01;         //使能定时器3
         NVIC->ISER[0]=1<<16;           
}
请问:进不了STM32F030K6的TIM3定时中断,是哪里出了问题?


mmuuss586 发表于 2014-11-22 20:32 | 显示全部楼层
中断向量啥的都没有啊,太简单了吧;

先用库函数,先调通吧;
再改成寄存器的;
jxmzzr 发表于 2014-11-24 11:03 | 显示全部楼层
建议楼主看看库函数是怎么实现的,然后照着改一下。
 楼主| hopewise 发表于 2014-11-24 11:44 | 显示全部楼层
多谢2位,看规格书终于搞定了,是少写TIM3->DIER|=1<<6;  //触发中断允许
 楼主| hopewise 发表于 2014-11-24 11:47 | 显示全部楼层
为了给后来初学,现总结如下:
/***********************************
* 名称:     TIM3_Init()
* 功能:     TIM3初始化子程序
* 入口参数: 无
* 出口参数: 无
* 说明:     Tout=ARR*(PSC+1)/Tclk→ARR=Tout*Tclk/(PSC+1)
            Tout=TIM3溢出时间(单位是us)
            ARR-自动重装值(TIM3->ARR)
            PSC--时钟预分频系数
            Tclk--TIM3的输入时钟频率(单位是HZ)
注意:TIM3->ARR是16位的,范围不可超过65535
************************************/
void TIM3_Init()
{
            RCC->APB1ENR|=1<<1;                       //TIM3时钟使能(一定在这里设置)  
            TIM3->ARR=24000;                         //定时500us   
            TIM3->PSC=0;                         //1分频(0+1)  
            TIM3->DIER|=1<<0;                  //允许更新中断  
            TIM3->DIER|=1<<6;                  //触发中断允许
            TIM3->CR1|=0x01;                   //使能定时器3       
            NVIC->ISER[0]|=1<<16;
}       
 楼主| hopewise 发表于 2014-11-24 11:52 | 显示全部楼层
补充一下:HCLK=PCLK=48MHZ
zhzzh18 发表于 2015-5-8 14:40 | 显示全部楼层
学习中
syw467643 发表于 2015-7-17 14:13 | 显示全部楼层
我们是正规代理商  有比较强大的FAE 团队  STM32F030K6T6问题可以联系我  QQ1450203232  电话18665827861
renxiaolin 发表于 2016-12-14 17:23 | 显示全部楼层
hopewise 发表于 2014-11-24 11:52
补充一下:HCLK=PCLK=48MHZ

按你的设置,500us没问题,但要1us中断,ARR设置48,但是用示波器看是2us中断一次,只要你设置比48更小的数,一直是2us,你知道什么原因不
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

468

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部