STM32F1 的定时器非常多,由 2 个基本定时器(TIM6、TIM7)、4 个通用定时器(TIM2-TIM5)和 2 个高级定时器(TIM1、TIM8)组成。
1、定时器有哪些,以及对应有什么功能
(1)基本定时器:
功能最为简单,类似于 51 单片机内定时器。
(2)通用定时器:
是在基本定时器的基础上扩展而来,增加了输入捕获(可以测量输入信号的脉宽)与输出比较(产生输出波形)等功能。
(3)高级定时器:
是在通用定时器基础上扩展而来,增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能主要针对工业电机控制方面。
2、通用定时器配置
#include "stm32f10x.h"
uint8_t time_flag = 0;
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //选择你要设置的IO口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //设置推挽输出模式
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//设置传输速率
GPIO_Init(GPIOC,&GPIO_InitStructure); /* 初始化GPIO */
GPIO_SetBits(GPIOC,GPIO_Pin_0); //将LED端口拉高,熄灭所有LED
}
void TIM4_Init(u16 per,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); //使能TIM4时钟
TIM_TimeBaseInitStructure.TIM_Period=per; //自动装载值
TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //分频系数
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; //时钟分频
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //设置向上计数模式
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);
TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); //开启定时器中断
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //定时器中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //子优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM4,ENABLE); //使能定时器
}
// TIM4中断函数
void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4,TIM_IT_Update))
{
if(time_flag){
time_flag = 0x00;
}
else{
time_flag = 0xff;
}
}
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
}
int main( void )
{
LED_Init();
TIM4_Init(1000,36000-1); //定时500ms
while(1)
{
if( time_flag ){
GPIO_ResetBits(GPIOC,GPIO_Pin_0);
}
else{
GPIO_SetBits(GPIOC,GPIO_Pin_0);
}
}
}
3、测试验证程序,下载到板子会看到LED闪烁,程序正常。
--END--
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
定时器
+关注
关注
23文章
3246浏览量
114709 -
stm32f1
+关注
关注
1文章
56浏览量
12199
发布评论请先 登录
相关推荐
STM32的通用定时器和高级定时器
STM32的通用定时器和高级定时器除了支持单向的向上或向下计数模式外,还支持中心对齐计数模式,即一个计数周期内分别由向上计数和向下计数两个过程组成。在基于计数
发表于 08-11 08:51
STM32的通用定时器和高级定时器功能
比较之后,并依据相应的输出模式从而实现各类输出。如PWM输出、电平翻转、单脉冲模式、强制输出等。一般来说,STM32的通用定时器和高级定时器都具有比较输出功能,不同的
发表于 08-18 07:15
STM32 通用定时器 输入捕获 测量脉宽例程,并做了超时处理
STM32 通用定时器 输入捕获 测量脉宽例程,并做了超时处理,欢迎下载。1-该例程已经在霸道和指南者上验证过 2-用的是TIM5的通道1,即PA0来测量高电平的时间,在霸道和指南者上,PA0接
发表于 12-05 15:00
•46次下载
STM32-通用定时器基本定时功能资料下载
电子发烧友网为你提供STM32-通用定时器基本定时功能资料下载的电子资料下载,更有其他相关的威廉希尔官方网站
图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮
发表于 04-12 08:44
•4次下载
评论