打印
[STM32F1]

STM32

[复制链接]
598|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dck380394085|  楼主 | 2015-5-13 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32进入时间会飘,如何使其进入时间稳定,比如我输出75Hz  当用示波器看到的是在74.96到75.01之间飘动   而且频率也大,飘动的值也大 定时器里就做了一件输出取反   整个程序就只做了一个定时器工作 没有其他的东西
沙发
dck380394085|  楼主 | 2015-5-13 09:59 | 只看该作者

程序如下
void Timer3_Init(unsigned int arr,unsigned int psc)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能

        TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值         计数到5000为500ms
        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  
        TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位

        TIM_ITConfig(  //使能或者失能指定的TIM中断
                TIM3,
                TIM_IT_Update  |  //TIM 中断源
                TIM_IT_Trigger,   //TIM 触发中断源
                ENABLE  //使能
                );
        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;  //先占优先级0级
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //从优先级1级
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
        NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器

        TIM_Cmd(TIM3, ENABLE);  //使能TIMx外设
                                                         
}

void TIM3_IRQHandler(void)   //TIM3中断
{
/*        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源
        {
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );//清除TIMx的中断待处理位:TIM 中断源
                Spwm_Buffur_Out();
               
        }           */
        if(TIM3->SR&0X0001)
        {
        //        Spwm_Buffur_Out();        
                        LED1 = ~LED1;
                        
        }
        TIM3->SR = ~(1<<0);           
}

使用特权

评论回复
板凳
gmm2015| | 2015-5-13 17:18 | 只看该作者
不到千分之一的误差,应该正常

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

19

帖子

0

粉丝