目录
前言
一、什么是输出比较
二、什么是PWM
1. PWM的相关参数:
2.PWM的应用场景:
3.占空比
三.输出比较的几种模式:
四,输出比较的极性
五,在输出比较中,TIM常用函数
六,同一个定时器不同通道输出PWM的特点:
前言
简要介绍一下输出比较,这部分主要是代码部分,下一篇通过PWM呼吸灯和PWM控制直流电机来详细介绍TIM的输出比较功能
一、什么是输出比较
输出比较(Output Compare),通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1,置0或翻转的操作,用于输出一定频率和占空比的PWM波形,每个高级定时器和通用定时器都有4个输出比较通道
注意:高级定时器的前三个通道额外拥有死区生成和互补输出的功能
二、什么是PWM
输出比较的表现形式其实就在于PWM,而PWM如果大家学过51大概也知道了,PWM就是一个脉冲宽度调制,它具体表现在具有惯性的系统中,可以通过对一些列脉冲的宽度进行调制来等效的获得所需要的模拟参量,可以用来对电机进行调速
1. PWM的相关参数:
频率:1/T;
占空比:Ton/Ts
分辨率:占空比变化步距
2.PWM的应用场景:
PWM的应用场景必须要是一个惯性系统,以LED为例,LED在熄灭的时候,由于人眼视觉暂留现象,LED不会立马熄灭,而是有一定惯性,过一小段时间才会熄灭,对于电机,电机断电,电机的转动不会立马停止,而是具有一定惯性,过一会儿才停
根据上边曲线图,PWM其实可以等效看成中间这个虚线所表示的模拟量
3.占空比
占空比决定了PWM等效出来的模拟电压的大小,占空比越小,等效的模拟电压就越趋近于低电平,占空比越大,等效的模拟电压就越趋近于高电平
三.输出比较的几种模式:
Timing 冻结模式
Active 相等时置有效电平
Inacktive 相等时置无效电平
Toggle 相等时电平翻转
四,输出比较的极性
TIM_OCPolarity_High :高极性,就是极性不翻转,REF波形直接输出,或者说有效电平高电平,REF有效时,输出高电平
TIM_OCPolarity_Low:低极性,就是REF电平取反,或者说有效电平为低电平,
五,在输出比较中,TIM常用函数
四个OCinit函数,是用结构体来初始化输出比较单元的
TIM_CtrlPWMOutputs函数,仅高级定时器使用,在使用高级定时器输出PWM时需要调用这个函数,使能主输出,否则PWM将不能正常输出
中间1088到1100是定时器的一些小功能,下边都是运行时更改参数的一些函数
其中,四个TIM_SetCompare函数很重要
TIM_OCStructInit函数,给结构体赋初始值
TIM_SetCompare1这个函数是用来单独更改通道1的CCR值的
六,同一个定时器不同通道输出PWM的特点:
因为不同通道是共用一个计数器的,所以它们的频率必须是相等的;
他们的占空比,由各自的CCR决定,所以占空比是可以各自设定的;
他们的相位,由于计数器更新,所有PWM同时跳变,所以他们的相位是同步的;
例如,如果驱动多个舵机或者直流电机,使用一个定时器不同通道的PWM,就可以了