系统时钟是默认的HSI的8MHz频率!这个会影响计时器的计数频率,所以要知道要这个频率,以保证以后自己可以根据分频来控制PWM输出波形的频率大小!这个对于实际项目中的开发很重要,大都电机对于频率都会有要求,这里先不纠结这个,我们先来产生不同占空比的波形!系统时钟默认为8MHz。
第一步:初始化相关寄存器。定时器选择TIM3,通道选择CH2,即PA7端口。(这里注意,PA7口和TIM3_CH3是同一端口的复用功能,所以必须要对应,如果不想不对应的话就要设置映射,这里不对这个进行设置说明)。
代码如下(库函数实现):
第二步:写入参数,我要一个以周期为800个计数值,不分频的定时器,
代码就是 TIM3_PWM_Init(799,0); (这里注意,定时器是从0开始的,所以800个计数值就是0~799,所以设置799)
最后设置占空比的库函数就是TIM_SetCompare2(TIM3,400);
这个函数的第一个值就是选择定时器,第二个参数就是我们在刚才设置的800个计数值中所占的个数,这样占空比就等于TIMCompare2/800=400/800 =0.5即高低电平个占1/2周期!(注意TIMCompare2是对2通道,如果上面我们设置的是1通道那应该为TIMCompare1了,一次类推。。)
最后主函数代码:
int main (void)
{
TIM3_PWM_Init(799,0);
while(1)
{
TIM_SetCompare2(TIM3,400);
}
}
我们利用示波器连接PA7端口就可以看到占空比为50%的波形了!
如果TIM_SetCompare2(TIM3,200),我们可以看到高电平占空比为200/800=25%的波形了!