赞
踩

实现32呼吸灯的主函数:
把Num放在中断函数++。

每过1s进入中断++。就是1s,Num++加一次。把Num给PWM_SetCompare()也就是CCR的值(比较值)。
好好好,上面是主函数。
下面是PWM的函数。
PWM函数:

用的是TIM2的通道一——对应的是PA0;![]()
1.所以要配置开启GPIO的PA0的。
2.用到定时器当然要配置时基单元。
3.因为要输出PWM所以要配置CCR,也就是OC输出比较
4.别忘了启动定时器,TIM_Cmd();
okok,配置进入中断的时间我们来配置一下。
设置CNT计数器,PSC自动重装。
okok开始正片:

这个图里说的很详细了。

RCC开启时钟(TIM2,和GPIO口的)

先要选择内部时钟,用结构体来配置TIM2。

这里就是配置CCR比较值。因为在后面要改变CCR的值,所以在这里TIM_Pulse = 0.

在主程序中改变CCR的值

TIM_ITConfig(.......)——中断使能(没有这一句,中断开启不了)
下面这张图就是中断的基本结构。

NVIC——中断控制器
启动定时器——TIM_Cmd(TIM2,ENABLE);
这就是主函数里的中断。
这样配置就OK了!这就是利用中断改变CCR比较值的代码部分。
再改变CCR的同时,占空比也在改变。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。