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

STM32定时器功能OK,但是分频因子不起作用!

[复制链接]
caizhiwei 提问时间:2015-2-6 13:31 /
悬赏10ST金币已解决
功能:10ms中断

今天突然发现了一个奇怪问题,分频因子不起作用!
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;//时钟分频因子
程序代码如下,stm32f1,F2通用:
  1. /*TIM6初始化 用于LCD backlight */
  2. //TIM_Period:自动重装值(u32)
  3. //TIM_Prescaler:时钟预分频值(u16)
  4. //定时时间计算  T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK(60Mhz)=(359+1)*(199+1)/36MHz=1ms

  5. void TIM6_Configuration(void)
  6. {
  7.   TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
  8.   NVIC_InitTypeDef NVIC_InitStructure;         
  9.                                                                                                                                                                                                                  
  10.   NVIC_InitStructure.NVIC_IRQChannel = TIM6_DAC_IRQn;        // Enable the TIM6 Interrupt
  11.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 先占优先级 1
  12.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;    // 从优先级 6
  13.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;           // IRQ通道被使能
  14.   NVIC_Init(&NVIC_InitStructure);

  15.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);//使能TIM6时钟 =系统时钟60M
  16.   TIM_TimeBaseInitStruct.TIM_Period = (100-1);//重装载值(1ms)
  17.   TIM_TimeBaseInitStruct.TIM_Prescaler = (6000-1); //预分频 f=(TIM_Prescaler+1)
  18. <font color="#ff0000">  /*TIM_CKD_DIV2, TIM_CKD_DIV4 is Not Action,Why? */
  19.   TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;//时钟分频因子</font>
  20.   TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式
  21.   //TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0x0000;///高级定时器有效(TIM1&TIM 8)
  22.   
  23.   TIM_TimeBaseInit(TIM6,&TIM_TimeBaseInitStruct);
  24.   //TIM_UpdateRequestConfig(TIM7,TIM_UpdateSource_Regular);//只有上溢或下溢才产生更新事件
  25.   TIM_ClearFlag(TIM6, TIM_FLAG_Update);
  26.   TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);
  27.                
  28.   TIM_Cmd(TIM6,ENABLE);       
  29. }
复制代码
  1. void TIM6_DAC_IRQHandler()
  2. {

  3.      if(TIM_GetITStatus(TIM6,TIM_IT_Update)!=RESET)
  4.     {
  5.          TIM_ClearITPendingBit(TIM6,TIM_FLAG_Update);                 
  6.           LED2_TOGGLE;      
  7.     }

  8. }
复制代码
希望有朋友帮我看看撒?修改分频因子不起作用~



最佳答案

查看完整内容

这个是死区采样分频设定,只有高级定时器里才有效,而且只对死区及ETR数字滤波才有效,给你一张寄存器说明吧,哥们。 一般意义上的分频就设置PSC就行了
收藏 评论15 发布时间:2015-2-6 13:31

举报

15个回答
netlhx 回答时间:2015-2-6 13:31:40
这个是死区采样分频设定,只有高级定时器里才有效,而且只对死区及ETR数字滤波才有效,给你一张寄存器说明吧,哥们。

QQ截图20150207210708.png

一般意义上的分频就设置PSC就行了

天好蓝 回答时间:2015-2-6 14:37:00
帮顶一哈
回答时间:2015-2-6 15:10:54
楼主如何确定修改分频不管用呢?
sdkdwyb-321669 回答时间:2015-2-6 15:36:39
看看楼主怎么解决的
caizhiwei 回答时间:2015-2-6 18:39:13
安 发表于 2015-2-6 15:10
楼主如何确定修改分频不管用呢?

用示波器测量的撒?嘿嘿,我解决了分享给大家
lkl0305 回答时间:2015-2-6 23:59:29
帮顶一个
回答时间:2015-2-7 08:49:39
楼主能具体说一下吗?你这个设置的周期是多少,实际测试到的周期是多少,示波器的截图。
逍遥李 回答时间:2015-2-7 09:44:08
问题解决了吗楼主?
caizhiwei 回答时间:2015-2-7 20:54:43

功能:10ms中断
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版