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

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





