STM32
登录
直播中
甘满盛
7年用户
1231经验值
擅长:386660
私信
关注
[问答]
stm32通用定时器是如何进行工作的
开启该帖子的消息推送
STM32
通用定时器
计时器
STM32
定时器有哪几种?
stm32通用计时器的特点有哪些呢?
stm32通用定时器是如何进行工作的?
回帖
(1)
郭学娟
2021-11-23 15:42:48
1.定时器种类
注:主要使用通用定时器
2.通用计时器特点描述
说明:四个通道互不影响
3.定时器中断触发条件
4.定时器计数模式
分为向上,向下,向上向下模式
5.通用定时器作用用途
测量输入输出波长度等
说明:每个定时器完全独立没有共享内存
6.工作过程
红色重点关注
时钟来源:
A.内部时钟APB1分频器ckl_int(主要)
B.其他通用定时器 外部引脚2,3,4
C.其他定时器
D.外部通道(略)
时基单元(时间控制单元) :
①预分频(除法)
②计数器时钟
③自动重装载值
输入部分:
①输入引脚
②边沿检测
输出部分 :
A 输出比较寄存器
B周期—重装载值
C占空比—比较值
时钟计算方法
7.定时器相关寄存器与固件库结构体
注:真正使用的只有前3个成员
8.定时器相关库函数
9.配置步骤
1.打开定时器时钟
2.中断组选择
3.定时器结构体配置与初始化
4.配置定时器与中断线联系
5.定时器中断结构体配置与初始化
6.开启定时器
配置俩个:重装载值,分频系数, tclk系统时钟不用
附上代码
.c文件
#include “stm32f10x.h”
#include “tim.h”
void tim_config(void)
{
TIM_TimeBaseInitTypeDef TIMinitStructure;//定时器结构体变量名
NVIC_InitTypeDef NVICinitStructure;//定时器中断结构体变量名
//1.打开定时器时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
//2.中断组选择
NVIC_PriorityGroupConfig( NVIC_PriorityGroup_1);
//3.定时器结构体的配置
TIMinitStructure.TIM_Prescaler =7200-1;//分配器计数值
TIMinitStructure.TIM_CounterMode =TIM_CounterMode_Up;//选择计数模式,选择向上计数模式
TIMinitStructure.TIM_Period =10000-1;//配置自动重装载值
TIMinitStructure.TIM_ClockDivision =TIM_CKD_DIV1;//选择分频模式,选择不分频模式
//4.定时器初始化
TIM_TimeBaseInit(TIM2, &TIMinitStructure);//用通用定时器2
//5.配置定时器与中断线联系创建
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
//6.定时器中断结构体配置
NVICinitStructure.NVIC_IRQChannel =TIM2_IRQn;//中断通道
NVICinitStructure.NVIC_IRQChannelPreemptionPriority =1;
NVICinitStructure.NVIC_IRQChannelCmd =ENABLE;
NVICinitStructure.NVIC_IRQChannelSubPriority =1;
//7.定时器中断初始化
NVIC_Init(&NVICinitStructure);
//8.开启定时器
TIM_Cmd(TIM2,ENABLE);
}
中断服务函数
void TIM2_IRQHandler ()//定时器中断服务函数
{
static uint16_t temp=0;
if(TIM_GetITStatus(TIM2,TIM_IT_Update)!= RESET)//判断是否发生中断
{
if((temp++ )%2==1)//奇数亮偶数灭,进入中断一次亮灭,一秒拉高一秒拉低
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13);//拉低电平
}
else
{
GPIO_SetBits(GPIOC,GPIO_Pin_13);//拉高电平
}
}
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
}
1.定时器种类
注:主要使用通用定时器
2.通用计时器特点描述
说明:四个通道互不影响
3.定时器中断触发条件
4.定时器计数模式
分为向上,向下,向上向下模式
5.通用定时器作用用途
测量输入输出波长度等
说明:每个定时器完全独立没有共享内存
6.工作过程
红色重点关注
时钟来源:
A.内部时钟APB1分频器ckl_int(主要)
B.其他通用定时器 外部引脚2,3,4
C.其他定时器
D.外部通道(略)
时基单元(时间控制单元) :
①预分频(除法)
②计数器时钟
③自动重装载值
输入部分:
①输入引脚
②边沿检测
输出部分 :
A 输出比较寄存器
B周期—重装载值
C占空比—比较值
时钟计算方法
7.定时器相关寄存器与固件库结构体
注:真正使用的只有前3个成员
8.定时器相关库函数
9.配置步骤
1.打开定时器时钟
2.中断组选择
3.定时器结构体配置与初始化
4.配置定时器与中断线联系
5.定时器中断结构体配置与初始化
6.开启定时器
配置俩个:重装载值,分频系数, tclk系统时钟不用
附上代码
.c文件
#include “stm32f10x.h”
#include “tim.h”
void tim_config(void)
{
TIM_TimeBaseInitTypeDef TIMinitStructure;//定时器结构体变量名
NVIC_InitTypeDef NVICinitStructure;//定时器中断结构体变量名
//1.打开定时器时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
//2.中断组选择
NVIC_PriorityGroupConfig( NVIC_PriorityGroup_1);
//3.定时器结构体的配置
TIMinitStructure.TIM_Prescaler =7200-1;//分配器计数值
TIMinitStructure.TIM_CounterMode =TIM_CounterMode_Up;//选择计数模式,选择向上计数模式
TIMinitStructure.TIM_Period =10000-1;//配置自动重装载值
TIMinitStructure.TIM_ClockDivision =TIM_CKD_DIV1;//选择分频模式,选择不分频模式
//4.定时器初始化
TIM_TimeBaseInit(TIM2, &TIMinitStructure);//用通用定时器2
//5.配置定时器与中断线联系创建
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
//6.定时器中断结构体配置
NVICinitStructure.NVIC_IRQChannel =TIM2_IRQn;//中断通道
NVICinitStructure.NVIC_IRQChannelPreemptionPriority =1;
NVICinitStructure.NVIC_IRQChannelCmd =ENABLE;
NVICinitStructure.NVIC_IRQChannelSubPriority =1;
//7.定时器中断初始化
NVIC_Init(&NVICinitStructure);
//8.开启定时器
TIM_Cmd(TIM2,ENABLE);
}
中断服务函数
void TIM2_IRQHandler ()//定时器中断服务函数
{
static uint16_t temp=0;
if(TIM_GetITStatus(TIM2,TIM_IT_Update)!= RESET)//判断是否发生中断
{
if((temp++ )%2==1)//奇数亮偶数灭,进入中断一次亮灭,一秒拉高一秒拉低
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13);//拉低电平
}
else
{
GPIO_SetBits(GPIOC,GPIO_Pin_13);//拉高电平
}
}
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32
通用定时器
计时器
介绍
STM32
F1
通用
TIMx
定时器
功能和
工作
过程
2021-11-24
872
STM32
的
通用
定时器
是怎样
进行
工作
的
2021-11-23
913
STM32
通用
定时器
的重要知识点
2021-09-26
971
STM32
通用
定时器
的基本
工作
原理是什么
2021-11-24
1385
STM32
通用
定时器
中断是什么意思
2021-11-24
943
STM32
通用
定时器
的
工作
过程是怎样的
2021-11-23
867
怎样去计算
STM32
通用
定时器
的时钟
2021-11-24
1106
STM32
通用
定时器
的
工作
过程是怎样的?
2021-11-24
682
STM32
通用
定时器
的重要知识点汇总
2021-09-26
995
STM32
F10x
通用
定时器
是怎样
进行
工作
的
2021-11-24
730
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分