PWM波形输出

在学习嵌入式开发板例程时,刚开始的时候不懂PWM波形是怎样输出的,后来渐渐的消化了,mark下:

Stm32_Clock_Init(9); //系统时钟设置
	delay_init(72);	     //延时初始化
	uart_init(72,9600);  //串口初始化 
	LED_Init();		  	 //初始化与LED连接的硬件接口
	TIM1_PWM_Init(899,0);//不分频。PWM频率=72000/(899+1)=80Khz 

这里PWM的频率也可以这样理解,
	TIM1->ARR=arr;			//设定计数器自动重装值 
	TIM1->PSC=psc;			//预分频器设置
 系统时钟为72MHZ,预分频数是0,即使记满899+1=900次,pwm完成一次周期输出,一个周期的时间为900/72M,频率为72M/900=80khz.

将TIM1设置为PWM模式,

   	while(1)
	{
 		delay_ms(10);	 
		if(dir)led0pwmval++;
		else led0pwmval--;	 
 		if(led0pwmval>300)dir=0;
		if(led0pwmval==0)dir=1;	   

		LED0_PWM_VAL=led0pwmval;	   
	} 
#define LED0_PWM_VAL TIM1->CCR1 
 TIM1->CCR1 的值自增或者自减,为一个阈值,这个阈值与累加到900清零的那个COUNT比较,影响输出,以此来改变占空比。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值