OpenEdv-开源电子网

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

开了五个基本定时器,一个高级定时器,但高级定时器不能用了,本来设置3S进中断,但要等好久才能进,不知道为什么。

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2016-10-27
在线时间
0 小时
发表于 2016-10-27 23:21:42 | 显示全部楼层 |阅读模式
1金钱
void TIM8_Configuration(void)
{
   TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
               

     RCC_APB2PeriphClockCmd (RCC_APB2Periph_TIM8, ENABLE);
       

    TIM_TimeBaseStructure.TIM_Period=1000;
       


    TIM_TimeBaseStructure.TIM_Prescaler= 71;
       

    //TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
               

    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
               

                //TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
       

    TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure);
               
       
    TIM_ClearFlag(TIM8, TIM_FLAG_Update);

    TIM_ITConfig(TIM8,TIM_IT_Update,ENABLE);
       
    TIM_Cmd(TIM8, ENABLE);                                                                                                       


}
void TIM4_NVIC_Configuration(void)
{
                NVIC_InitTypeDef NVIC_InitStructure;
   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);                                                                                                         
    NVIC_InitStructure.NVIC_IRQChannel = macTIM4_IRQ;          
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;       
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}
void  TIM8_UP_IRQHandler (void)
{
        if ( TIM_GetITStatus( TIM8, TIM_IT_Update) != RESET )
        {       
                time2++;
                TIM_ClearITPendingBit(TIM8 , TIM_FLAG_Update);
                if ( time2 ==3000)
              {
                     time2 = 0;
                 BiaoPulse2();
                       
                  RCC_APB2PeriphClockCmd (RCC_APB2Periph_TIM8, DISABLE);  
       }        
        }                        
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2016-10-27
在线时间
0 小时
 楼主| 发表于 2016-10-27 23:24:14 | 显示全部楼层
配置中断是我写的是TIM8,没错的,是发帖时不小心复制错了。
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-10-28 08:32:59 | 显示全部楼层
TIM1要多设置一个寄存器,否则要比普通的定时器慢八倍,好久不用了,有点忘了,我手头没有手册和库,你去看一下。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

5

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2016-8-5
在线时间
158 小时
发表于 2016-10-28 09:54:09 | 显示全部楼层
TIM8中断优先级问题?
回复

使用道具 举报

7

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
745
金钱
745
注册时间
2016-1-20
在线时间
78 小时
发表于 2016-10-28 12:58:13 | 显示全部楼层
我发现在初始化的时候有一个BUG,主要表现,当把初始化函数写在一起的时候,局部变量的名称一样的话,这些函数之间相互影响。建议把局部变量的名字区分开来,或者使用前加一句TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);这样的初始化函数,以保证相互之间没有影响。我现在是每次初始化设置局部变量的名称都不一样。TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;写成TIM_TimeBaseInitTypeDef  TIM8_TimeBaseStructure;希望对你有帮助!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 11:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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