打印
[其他ST产品]

STM32F4 TIMER定时器配置

[复制链接]
357|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
工程师犹饿死|  楼主 | 2021-12-30 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, TI
定时器溢出时间计算:
Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
ARR:自动重装载寄存器,用于装载计数器
PSC:PSC预分频器(分频范围1~65535)
Tclk:外设时钟周期



使用特权

评论回复
沙发
工程师犹饿死|  楼主 | 2021-12-30 14:20 | 只看该作者
定时器配置步骤
1定时器时钟使能

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

使用特权

评论回复
板凳
工程师犹饿死|  楼主 | 2021-12-30 14:21 | 只看该作者
2.初始化定时器
1.定义定时器结构体

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;

使用特权

评论回复
地板
工程师犹饿死|  楼主 | 2021-12-30 14:22 | 只看该作者
2.设置自动重装载值

TIM_TimeBaseStructure.TIM_Period = 自动重载值;

使用特权

评论回复
5
工程师犹饿死|  楼主 | 2021-12-30 14:23 | 只看该作者
3.设置预分频系数

TIM_TimeBaseStructure.TIM_Prescaler = 预分频系数;

使用特权

评论回复
6
工程师犹饿死|  楼主 | 2021-12-30 14:23 | 只看该作者
4.设置计算模式
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;

使用特权

评论回复
7
工程师犹饿死|  楼主 | 2021-12-30 14:24 | 只看该作者
设置分频模式
        TIM_TimeBaseStructInit.TIM_ClockDivision = TIM_CKD_DIV1;

使用特权

评论回复
8
工程师犹饿死|  楼主 | 2021-12-30 14:25 | 只看该作者
5.设置时钟分频因子(普通定时器无需配置)

使用特权

评论回复
9
工程师犹饿死|  楼主 | 2021-12-30 14:25 | 只看该作者
6.初始化定时器
TIM_TimeBaseInit(定时器,&TIM_TimeBaseInitStructure);//初始化TIM3

使用特权

评论回复
10
工程师犹饿死|  楼主 | 2021-12-30 14:26 | 只看该作者
7.允许定时器更新中断
TIM_ITConfig(定时器,TIM_IT_Update,ENABLE); 

使用特权

评论回复
11
工程师犹饿死|  楼主 | 2021-12-30 14:27 | 只看该作者
8.使能定时器
TIM_Cmd(定时器,ENABLE); 

使用特权

评论回复
12
工程师犹饿死|  楼主 | 2021-12-30 14:28 | 只看该作者
本帖最后由 工程师犹饿死 于 2021-12-30 14:30 编辑

3.配置定时器中断
详见STM32F4中断配置https://bbs.21ic.com/icview-3189624-1-1.html

使用特权

评论回复
13
工程师犹饿死|  楼主 | 2021-12-30 14:29 | 只看该作者
4.编写定时器中断函数
void 定时器_IRQHandler(void)
{
if(TIM_GetITStatus(定时器,TIM_IT_Update)==SET) //溢出中断
{
        }
TIM_ClearITPendingBit(定时器,TIM_IT_Update);  //清除中断标志位
}

使用特权

评论回复
14
Kiwi2021| | 2021-12-30 14:53 | 只看该作者
配置定时器中断
详见STM32F4中断配置  

使用特权

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

本版积分规则

75

主题

886

帖子

0

粉丝