打印

帮俺看看这是不是4ms定时中断

[复制链接]
1804|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ybxdy|  楼主 | 2008-9-17 17:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 我试了一下,好像是3ms小弟这没有示波器,只能看电脑秒变化用多次计数累加再除次数得到的好像是3ms


   RCC_HCLKConfig(RCC_SYSCLK_Div1); // AHB时钟等于SYSCLK  
    RCC_PCLK2Config(RCC_HCLK_Div1);  //APB2时钟等于SYSCLK    
    RCC_PCLK1Config(RCC_HCLK_Div2);//低速APB1时钟等于SYSCLK/2    
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    // PLLCLK = 8MHz * 9 = 72 MHz [配置PLL时钟源和乘法因子][PLL时钟输入等于HSE时钟][PLL乘法因子取值9]

void TIM_Configuration(void)

  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
//  TIM_OCInitTypeDef  TIM_OCInitStructure ;
  TIM_DeInit( TIM2);//复位TIM2定时器

  /* TIM2 configuration */
  TIM_TimeBaseStructure.TIM_Period = 0x0fa0;          //4000  
  TIM_TimeBaseStructure.TIM_Prescaler = 0x36;         //分频0x36       
  TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;      // 时钟分割  
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //计数方向向上计数
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);   
  TIM_ClearFlag(TIM2, TIM_FLAG_Update);               //清除TIM2溢出中断标志  
  TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);          //TIM2溢出中断允许  
  TIM_Cmd(TIM2, ENABLE);                              //允许tim2计数
沙发
barboon| | 2008-9-17 17:20 | 只看该作者

re

TIM_TimeBaseStructure.TIM_Prescaler = 0x36;
改成
TIM_TimeBaseStructure.TIM_Prescaler = 72;
试试

使用特权

评论回复
板凳
香水城| | 2008-9-17 17:26 | 只看该作者

如果没有示波器,你可以把定时参数放大1000倍用手表测量

调试好后再把参数放到正确的数值。

使用特权

评论回复
地板
ybxdy|  楼主 | 2008-9-17 17:31 | 只看该作者

对是对了

改为72是对了,但
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);  // TIM2定时器允许的
APB1PeriphClockCmd时钟不是应该为72MHz/2吗
那不是
TIM_TimeBaseStructure.TIM_Prescaler = 36 才对,
TIM_TimeBaseStructure.TIM_Prescaler = 72不是说明APB1PeriphClockCmd时钟为72MHz

使用特权

评论回复
5
香水城| | 2008-9-17 17:38 | 只看该作者

STM32F10xx时钟系统框图:时钟是整个系统的脉搏

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝