四川省工程建设管理协会网站,新媒体运营主要做什么,网页版微信传文件,免费的ai素材网站基本定时器简介与特性 -1-时钟可分频
-2-计数模式只可以选择累加
-3-只可以用来定时#xff08;含中断#xff09; 查看时钟源 如图定时器7的时钟最大为72MHZ 定时时间的计算 通用定时器的时间计算公式为 Tout #xff08;#xff08;arr1#xff09;#xff08;psc1含中断 查看时钟源 如图定时器7的时钟最大为72MHZ 定时时间的计算 通用定时器的时间计算公式为 Tout arr1psc1/Tclk ; arr为重载值 psc为时钟分频系数 Tclk为时钟频率 代码编写已经验证可直接拷贝使用 这是一个在定时器7的中断函数中翻转两个LED的demo timer.c文件
#include timer.h// 通用定时器的时间计算公式为 Tout arr1psc1/Tclk ;
void Timer_7_Init(uint16_t arr,uint16_t psc)
{//开启定时器7时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE);//定义结构体TIM_TimeBaseInitTypeDef Timer7_CFG;//预分频系数Timer7_CFG.TIM_Prescaler psc;//定义重装载值Timer7_CFG.TIM_Period arr;//设置计数模式,通用计时器只支持累加Timer7_CFG.TIM_CounterMode TIM_CounterMode_Up;//调用初始化函数把值写入寄存器TIM_TimeBaseInit(TIM7,Timer7_CFG);//配置定时器为更新中断TIM_ITConfig(TIM7,TIM_IT_Update,ENABLE);//配置NVIC优先级NVIC_InitTypeDef NVIC_CFG;NVIC_CFG.NVIC_IRQChannel TIM7_IRQn;NVIC_CFG.NVIC_IRQChannelCmd ENABLE;NVIC_CFG.NVIC_IRQChannelSubPriority0;NVIC_CFG.NVIC_IRQChannelPreemptionPriority0;//调用初始化函数把值写入寄存器NVIC_Init(NVIC_CFG); //打开定时器即开始计时TIM_Cmd(TIM7,ENABLE);
}void TIM7_IRQHandler(void)
{//检查是否为更新中断if(TIM_GetITStatus(TIM7,TIM_IT_Update)SET){//清除中断标志位TIM_ClearFlag(TIM7,TIM_FLAG_Update);GPIOB-ODR^(15);GPIOE-ODR^(15);}}main.c文件
#include stm32f10x.h
#include timer.h
#include delay.hvoid LED_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);GPIO_InitStructure.GPIO_Pin GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_Init(GPIOB, GPIO_InitStructure);GPIO_Init(GPIOE, GPIO_InitStructure);}int main(void)
{ delay_init();LED_Init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);Timer_7_Init(4999,7199);while(1);
}
工程获取
三连后点击下方头像