[其他ST产品] STM32F4 TIMER定时器配置

[复制链接]
 楼主| 工程师犹饿死 发表于 2021-12-30 13:51 | 显示全部楼层 |阅读模式
ST, TI
定时器溢出时间计算:
  1. Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
  2. ARR:自动重装载寄存器,用于装载计数器
  3. PSC:PSC预分频器(分频范围1~65535)
  4. Tclk:外设时钟周期



 楼主| 工程师犹饿死 发表于 2021-12-30 14:20 | 显示全部楼层
定时器配置步骤
1定时器时钟使能

  1. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
 楼主| 工程师犹饿死 发表于 2021-12-30 14:21 | 显示全部楼层
2.初始化定时器
1.定义定时器结构体

  1. TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
 楼主| 工程师犹饿死 发表于 2021-12-30 14:22 | 显示全部楼层
2.设置自动重装载值

TIM_TimeBaseStructure.TIM_Period = 自动重载值;
 楼主| 工程师犹饿死 发表于 2021-12-30 14:23 | 显示全部楼层
3.设置预分频系数

TIM_TimeBaseStructure.TIM_Prescaler = 预分频系数;
 楼主| 工程师犹饿死 发表于 2021-12-30 14:23 | 显示全部楼层
4.设置计算模式
  1. TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
 楼主| 工程师犹饿死 发表于 2021-12-30 14:24 | 显示全部楼层
设置分频模式
  1.         TIM_TimeBaseStructInit.TIM_ClockDivision = TIM_CKD_DIV1;
 楼主| 工程师犹饿死 发表于 2021-12-30 14:25 | 显示全部楼层
5.设置时钟分频因子(普通定时器无需配置)
 楼主| 工程师犹饿死 发表于 2021-12-30 14:25 | 显示全部楼层
6.初始化定时器
  1. TIM_TimeBaseInit(定时器,&TIM_TimeBaseInitStructure);//初始化TIM3
 楼主| 工程师犹饿死 发表于 2021-12-30 14:26 | 显示全部楼层
7.允许定时器更新中断
  1. TIM_ITConfig(定时器,TIM_IT_Update,ENABLE);
 楼主| 工程师犹饿死 发表于 2021-12-30 14:27 | 显示全部楼层
8.使能定时器
  1. TIM_Cmd(定时器,ENABLE);
 楼主| 工程师犹饿死 发表于 2021-12-30 14:28 | 显示全部楼层
本帖最后由 工程师犹饿死 于 2021-12-30 14:30 编辑

3.配置定时器中断
详见STM32F4中断配置https://bbs.21ic.com/icview-3189624-1-1.html
 楼主| 工程师犹饿死 发表于 2021-12-30 14:29 | 显示全部楼层
4.编写定时器中断函数
  1. void 定时器_IRQHandler(void)
  2. {
  3. if(TIM_GetITStatus(定时器,TIM_IT_Update)==SET) //溢出中断
  4. {
  5.         }
  6. TIM_ClearITPendingBit(定时器,TIM_IT_Update);  //清除中断标志位
  7. }
Kiwi2021 发表于 2021-12-30 14:53 | 显示全部楼层
配置定时器中断
详见STM32F4中断配置  

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

本版积分规则

78

主题

967

帖子

1

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