你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 tim时钟分频的问题

[复制链接]
PennWu 提问时间:2010-11-28 15:36 /
我使用的是stm32f103的芯片,在使用tim定时器时,碰到一个奇怪的现象。
使用如下代码时,能够正常的每200ms产生一次中断事件。
如果将红色的部分改为
TimInitStruct.TIM_ClockDivision = TIM_CKD_DIV2;
或TimInitStruct.TIM_ClockDivision = TIM_CKD_DIV4;
  
执行时仍然是200ms产生一次中断,不知何解?
如果从字面解释看,DIV2之后,应该是400ms产生一次中断才对呀
注:使用std3.3库函数
 /* TIM3 clock enable */
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
 TimInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;   // 系统时钟72M,定时器基准频率APB1*2 
 TimInitStruct.TIM_Prescaler = 36000-1;                    // 计数频率为2KHz
 TimInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数
 TimInitStruct.TIM_Period = 400; // ARR 72M/36K=2Khz  2K/400=5  1/5=200ms产生一次中断
 TIM_TimeBaseInit(TIM3, &TimInitStruct);
 TIM_ClearFlag(TIM3,TIM_FLAG_Update);
 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
 TIM_Cmd(TIM3, ENABLE);     //time3
 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //time3 中断 优先级  显示刷新
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; 
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
收藏 评论1 发布时间:2010-11-28 15:36

举报

1个回答
废鱼 回答时间:2010-11-29 09:20:12

RE:stm32 tim时钟分频的问题

TimInitStruct.TIM_Period = 400;
你把这个也改一下,比如改为800,在同一频率下。这个决定输出的时间间隔。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版