完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
定时器分类
1,基本定时器TIM6、TIM7;计时,能产生中断,没有输入输出引脚; 2,通用计时器TIM2、TIM3/TIM4/TIM5;计时、中断、比较/捕获,PWM方波输出,编码器接口; 3,高级定时器TIM1、TIM8;上面都具有,还具有三相6步电机的接口、刹车功能以及用于PWM驱动电路的四驱时间控制。 时钟源 TIM2-TIM7的时钟源是APB1 TIM1、TIM8的时钟源是APB2 应用代码 使用TIM2的基本定时器功能,配置过程 1、配置TIM2,打开时钟,重装载值设置(周期),时钟分频器,计数方式,使能中断 void TIM2_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE); /* 打开时钟 72MHZ */ TIM_TimeBaseStructure.TIM_Period=1000;/* 重装载值*/ TIM_TimeBaseStructure.TIM_Prescaler= 71; /*时钟预分频数72,也就是本来72M,现在是1M */ TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;/* 对外部时钟进行采样的时钟频率,这里没有用到 */ TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//设置TIM2参数 TIM_ClearFlag(TIM2, TIM_FLAG_Update);//清除标志位 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//使能中断 TIM_Cmd(TIM2, ENABLE);//使能定时器 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , DISABLE); /*先关闭,等待使用*/ } 接下来配置中断优先级 void TIM2_NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //无主优先级,次优先级为16个 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; //指定中断服务函数 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //这里0-15都可以 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } 接下来写中断服务函数 extern volatile u32 time; //volatile 是修饰字符,不用优化 void TIM2_IRQHandler(void) { if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET ) { time++; TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update); } } 主函数的循环 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);//打开时钟开始计数 while(1) { if ( time == 1000 ) /* 1000 * 1 ms = 1s 周期,中断1000次,中断中期为1/1M = 1ms */ { time = 0; //做自己的事 } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1574 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1519 浏览 1 评论
949 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
672 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1565 浏览 2 评论
1852浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
622浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
508浏览 3评论
512浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
494浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 01:21 , Processed in 0.828060 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号