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);
}
是不是慢了一半?
如果是的话,就是 预分频系数=2 ,改成预分频系数=1 就可以了。
看看时钟和定时器配置,2的倍数时差那就是配置问题~ 学习学习 TIM1是APB2 高速时钟
TIM3 是APB1低速时钟 慢多少啊? 可能是MDK的优化造成的 学习学习 feixiang20 发表于 2016-8-15 20:43
可能是MDK的优化造成的
这个跟mdk优化应该没啥关系 先查是不是同一根外设总线,再查分频系数
页:
[1]
2