OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1838|回复: 4

定时器3的定时周期

[复制链接]

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-8-4
在线时间
39 小时
发表于 2019-4-30 09:51:52 | 显示全部楼层 |阅读模式
我的配置是这样的
// TIM3 configuration
   TIM_TimeBaseStructure.TIM_Period = 5000 ; // 自动重装载寄存器周期的值 ;       50ms进一次中断
   TIM_TimeBaseStructure.TIM_Prescaler = 720; // 设置了用来作为TIM2时钟频率除数的预分频值。      
   TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;  // 设置了时钟分割。  
   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // TIM向上计数模式 ;
   TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); // 初始化TIM2的时间基数单位 ;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing; // TIM2输出比较时间模式 ;              
   TIM_OCInitStructure.TIM_Pulse = 0x0;  // 设置了待装入捕获比较寄存器的脉冲值。
   TIM_OC1Init(TIM3, &TIM_OCInitStructure);
   
   TIM_Cmd(TIM3, ENABLE); // 使能TIM3外设 ;
  TIM_PrescalerConfig(TIM3, 720, TIM_PSCReloadMode_Immediate); // 设置TIM3预分频为0xEA5F即时装入 ;
   TIM_ClearFlag(TIM3, TIM_FLAG_Update);
   TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); // 使能TIM3中断源 ;
/****************************************************************************************************/
以下是时钟配置
   /* Enable HSE */
   RCC_HSEConfig(RCC_HSE_ON);//8M
   /* Wait till HSE is ready */
   while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);

    /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
  
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1);
    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    /* Enable PLL */
    RCC_PLLCmd(ENABLE);
    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08);

/**************************************************************************/
此时我的定时器中断的周期应该是
【(5000+1)*(720+1)】/72M  大约是50ms进一次中断,但是实际上差不多0.5秒进一次中断 ,请大佬帮我解答一下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-8-4
在线时间
39 小时
 楼主| 发表于 2019-4-30 10:17:21 | 显示全部楼层
原子哥能来帮我解答一下吗?
回复 支持 反对

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-4-30 10:50:28 | 显示全部楼层
具体用的哪款103芯片?
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-8-4
在线时间
39 小时
 楼主| 发表于 2019-5-6 10:02:26 | 显示全部楼层
peng1554 发表于 2019-4-30 10:50
具体用的哪款103芯片?

F103ZET6
回复 支持 反对

使用道具 举报

0

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2019-4-28
在线时间
5 小时
发表于 2019-5-6 10:53:18 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 16:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表