stm32定时器级联(一个定时器作为另一个的预分频器

本文详细介绍了如何在STM32中实现TIM2和TIM3的级联,使用TIM2作为TIM3的预分频器,通过TIM2的更新事件触发TIM3,每秒TIM2中断一次,TIM3在接收到两次TIM2的信号后中断。代码示例展示了配置过程,包括时基设置、中断配置和NVIC设置。文章强调了主从模式的独立性以及外部触发输入的选择方法。

stm32定时器级联(一个定时器作为另一个的预分频器

在网上找了许多代码看了许多资料,都没有找到理想的,有些不是用标准库的,有些只写出了想法并没有具体的操作,经过多次修改笔者终于成功运行。

该代码的实现功能是:TIM2和TIM3的级联,TIM2用内部时钟源,每秒产生一个中断(执行NUM1++)和更新事件(作为TRGO输出到TIM3),TIM3以触发输入为时钟,每传来两次信号后进入中断(执行NUM2++)

Timer.c

#include "stm32f10x.h"                  // Device header


void Timer_Init(void)
{
   
   
	/*
		TIM2
	*/
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
	TIM_InternalClockConfig(TIM2);
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseInitStructure.TIM_Period = 10000-1;
	TIM_TimeBaseInitStructure.TIM_Prescaler = 7200-1;
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
	
	TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//打开更新中断
	TIM_SelectOu
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值