STM32用OCToggle模式产生单脉冲

平台:KEIL5+stm32f103。

功能:采用TIM3的1,2通道的比较翻转模式产生宽度可调的单脉冲(本例的脉冲宽度200us/100us),脉冲之间间隔1s。

目前网上流传较多的方案一般2种:第一种:外部IO做触发源,定时器接收后产生脉宽;第二种:用定时器的主从或门控模式,用一个定时器驱动另外一个定时器。这两种方案要么需要外部IO,要么需要2个通用或高级的定时器,占用资源相对较多。本方案使用一个高级活通用定时器+系统滴答。系统滴答做这一件事同时还可以执行其他计时任务,总的来说,占用资源相对较少。

 

#define TIMER3_OCTOGGLE_FREQUENCY (uint32_t)1000000	//MHz,OCToggle模式下计时时钟

//翻转频率 = TIMER3_OCTOGGLE_FREQUENCY/Timer3_PWM_CCR1_Val
uint16_t Timer3_PWM_CCR1_Val = 100;//翻转频率 = 方波频率*2
uint16_t Timer3_PWM_CCR2_Val = 50;

void TIMER3_OCToggleMode_Config(void)	
{
	GPIO_InitTypeDef GPIO_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
       
	uint16_t Timer3_PWM__PrescalerValue = 0;

	/* PCLK1 = HCLK/4 */
	RCC_PCLK1Config(RCC_HCLK_Div4);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值