stm32 定时器串联

 	NVIC_InitTypeDef NVIC_InitStructure;  
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
//    TIM_OCInitTypeDef TIM_OCInitStructure;
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 						//使能 TIMx 外设
	//设置住定时器TIM3
	TIM_DeInit(TIM3);
	TIM_TimeBaseStructure.TIM_Period = pwm_period;								//设置自动重装载周期值
	TIM_TimeBaseStructure.TIM_Prescaler =TMRNCLK/frequency/pwm_period-1; 		//设置预分频值 不分频
	TIM_TimeBaseStructure.TIM_ClockDivision = 0; 								//设置时钟分割:TDTS = Tck_tim			这里是 32M
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 				//向上计数
	TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);								//初始化 TIMx
	TIM_ClearFlag(TIM3, TIM_FLAG_Update);                 
	TIM_ARRPreloadConfig(TIM3, ENABLE); 										//使能 TIMx 在 ARR 上的预装载寄存器
	//TIM_SelectMasterSlaveMode(TIM3,TIM_MasterSlaveMode_Enable);				//既做主模式也作为slave 模式 一般用于两个计时器的同步
	TIM_SelectOutputTrigger(TIM3,TIM_TRGOSource_Update);						//以TIM3的溢出 作为信号

	//设置从定时器TIM2
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); 						//使能 TIMx 外设
	TIM_DeInit(TIM2);
	TIM_TimeBaseStructure.TIM_Period = 1000;									//设置自动重装载周期值
	TIM_TimeBaseStructure.TIM_Prescaler =0;								 		//设置预分频值 不分频
	TIM_TimeBaseStructure.TIM_ClockDivision = 0; 								//设置时钟分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 				//向上计数
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);								//初始化 TIMx
	TIM_ClearFlag(TIM2, TIM_FLAG_Update);                 
	TIM_ARRPreloadConfig(TIM2, ENABLE); 										//使能 TIMx 在 ARR 上的预装载寄存器
	TIM_SelectInputTrigger(TIM2, TIM_TS_ITR2);									//选择tim3的trgo输入
	TIM_SelectSlaveMode(TIM2,TIM_SlaveMode_External1);							//选择trgi作为时钟输入
	
	if(enIrq)			
	{
		NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;       			/*溢出中断*/  
		NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
		NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
		NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
		NVIC_Init(&NVIC_InitStructure);  
		TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);                   				/* 使能中断 */	
	}
	TIM_Cmd(TIM2, ENABLE); 														//使能 TIM3
	TIM_Cmd(TIM3, ENABLE); 														//使能 TIM3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值