STM32PWM输出实验

<pre name="code" class="plain">void TIM3_PWM_Init(u16 arr,u16 psc)
{
	//1 开启TIM3时钟  配置PB5为复用输出
	RCC->APB1ENR|=1<<1;		//TIM3时钟使能
	RCC->APB2ENR|=1<<3;		//使能PORTB时钟
	GPIOB->CRL&=0xff0fffff;	

	//2 设置TIM3_CH2重映射到PB5
	GPIOB->CRL|=0x00b00000;	//复用功能
	RCC->APB2ENR|=1<<0;		//开启辅助时钟
	AFIO->MAPR&=0xfffff3ff;	//清除MAPR的[11:10]
	AFIO->MAPR|=1<<11;		//部分重映像,TIM3_CH2->PB5

	//3 设置TIM3的ARR和PSC
	TIM3->ARR=arr;
	TIM3->PSC=psc;

	//4 设置TIM3_CH2的PWM模式
	TIM3->CCMR1|=7<<12; 	//CH2 PWM2模式
	TIM3->CCMR1|=1<<4;		//CH2 预装载使能
	//5 使能TIM3_CH2输出 使能TIM3
	TIM3->CCER|=1<<4;  	//OC2输出使能
	TIM3->CR1=0x0080;		//ARPE 使能
	TIM3->CR1|=0x01;			//使能定时器
	//6 修改TIM3_CCR2来控制占空比
}

 

控制PWM的三个寄存器:捕获/比较模式寄存器(TIMx_CCMR1/2)、捕获比较使能寄存器(TIMx_CCER)、捕获比较寄存器(TIMx_CCR1~4)。

TIMx_CCMR1OCxM为模式设置位,由三位组成,可以配置7种模式,PWM模式必须设置位110/111。这两种PWM模式的区别就是输出电平的极性是反的。

TIMx_CCER控制着各个输入输出通道的开关。

TIMx_CCR1~4,对应着4个输通道CH1~CH4.

具体关于寄存器的内容,参考《STM32参考手册》。

STM32的重映射控制是由复用重映射和调试IO配置寄存器(AFIO_MAPR)控制的。


配置步骤:

1 开启TIM3时钟  配置PB5为复用输出

2 设置TIM3_CH2重映射到PB5

3 设置TIM3的ARR和PSC

4 设置TIM3_CH2的PWM模式

5 使能TIM3_CH2输出 使能TIM3

6 修改TIM3_CCR2来控制占空比


参考文献《原子教你玩STM32(寄存器版)》

参考程序:https://github.com/2012wowo/STM32-PWM/upload

更多精彩内容,欢迎关注【跟单片机谈恋爱】


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值