banrizhang-2625 发表于 2016-8-10 17:10:39

STM32F030F4的TIM1定时10ms,时钟走的慢

STM32F030F4的TIM1定时10ms,时钟走的慢,用tim3运行正常
//FLK=ÄÚ²¿¾§Õñ8M
void TIMER_Initializes(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);

/* Time ¶¨Ê±Æ÷»ù´¡ÉèÖà */
TIM_TimeBaseStructure.TIM_Prescaler = 80-1; //Ô¤·ÖƵ
TIM_TimeBaseStructure.TIM_Period = 1000-1; //ÖØÔØÖµ
/*ÅäÖÃΪ10msÖжÏ*/
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

TIM_ClearFlag(TIM1, TIM_FLAG_Update);
TIM_ARRPreloadConfig(TIM1, ENABLE);

/* TIM ÖжÏʹÄÜ */
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);
/* TIM1 ʹÄÜ */
TIM_Cmd(TIM1, ENABLE);
}
void TIM1_BRK_UP_TRG_COM_IRQHandler(void)

if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)
{
TIM_ClearITPendingBit(TIM1, TIM_FLAG_Update);
TaskRemarks();//GPIOA->ODR ^= GPIO_Pin_0;
}
}
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* ÍâÉèÖÐ¶Ï */
/*TIM1 ÖжÏǶÌ×Éè¼Æ*/
NVIC_InitStructure.NVIC_IRQChannel = TIM3TIM1_BRK_UP_TRG_COM_IRQnIRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

无薪税绵 发表于 2016-8-15 09:33:55

是不是慢了一半?
如果是的话,就是 预分频系数=2 ,改成预分频系数=1 就可以了。

df_flying 发表于 2016-8-15 10:44:31

看看时钟和定时器配置,2的倍数时差那就是配置问题~

ql1000 发表于 2016-8-15 15:10:05

学习学习

Cortexxx 发表于 2016-8-15 16:47:21

TIM1是APB2 高速时钟
TIM3 是APB1低速时钟

北凉徐凤牛 发表于 2016-8-15 16:57:52

慢多少啊?

feixiang20 发表于 2016-8-15 20:43:48

可能是MDK的优化造成的

dearzwx 发表于 2016-8-16 13:47:20

学习学习

野火_firege 发表于 2016-8-16 18:55:55

feixiang20 发表于 2016-8-15 20:43
可能是MDK的优化造成的

这个跟mdk优化应该没啥关系

电小龙 发表于 2016-8-17 09:26:55

先查是不是同一根外设总线,再查分频系数
页: [1] 2
查看完整版本: STM32F030F4的TIM1定时10ms,时钟走的慢