[应用相关] 定时器配置里的这句话是什么意思

[复制链接]
1521|4
 楼主| huangfeng33 发表于 2013-12-22 15:39 | 显示全部楼层 |阅读模式
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; 定时器配置里的这句话是什么意思?我查到是时钟分割的意思,这是配置TIM2,需要将36MHz两倍频,但是TIM_CKD_DIV1=0,为什么TIM_TimeBaseStructure.TIM_ClockDivision=0就是将时钟两倍频了??谢谢大家了。
ABHK 发表于 2013-12-22 17:30 | 显示全部楼层
应该是说  将某一个时钟信号   倍频吧   这个  目测是这个意思   你自己在实际操作一遍吧
杨爱林林 发表于 2013-12-23 08:26 | 显示全部楼层
ahuzjh 发表于 2013-12-23 09:23 | 显示全部楼层
建议看看STM32关于系统整个时钟的框图,可能会有答案的,注意一下你所设置的TIM2的时钟来源以及系统默认的时钟来源。
jjjkkk00 发表于 2013-12-23 14:00 | 显示全部楼层
本帖最后由 jjjkkk00 于 2013-12-23 14:05 编辑

这个问题涉及到两点:APB时钟的预分频系数和定时器外设的时钟分频因子。
这要追查到库函数和寄存器配置的问题。
void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
{
//省略部分代码......
//对TIM6以外的定时器外设配置时钟分频因子。
  if(TIMx != TIM6)
  {
    /* Set the clock division */
    tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CR1_CKD));
    tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision;
  }
  TIMx->CR1 = tmpcr1;
//省略部分代码......
}

时钟树的截图如下:APB时钟的预分频系数在RCC寄存器配置中查看。
1.JPG
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

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