OC输出比较
一.单片机内部有一个捕获比较寄存器
用于比较CNT(计数器)与CCR寄存器的值,当两者进行比较大小时,进行置1,置0或翻转的操作,用于输出一定频率与占空比的波形。当频率变化够快时,就可以输出不是阶跃信号的模拟信号,例如正弦信号等。
在通用定时器与高级定时器上各有4个OC通道
高级定时器前三个输出比较通道拥有死区生成和互补比较的功能,用于驱动三相无刷电机。
二.PWM参数介绍
频率f、占空比=T高电平/T整个周期、分辨率=占空比变化步距(占空比变化的细腻程度)
占空比:Duty=CCR/(ARR+1)
分辨率:Reso:1/(ARR+1)
三.输出比较模式配置方法(手册上的)
输出比较模式的配置步骤:
1. 选择计数器时钟(内部,外部,预分频器)。
2. 将相应的数据写入TIMx_ARR和TIMx_CCRx寄存器中。(设置CCR的值)
3. 如果要产生一个中断请求,设置CCxIE位。(一般没必要)
4. 选择输出模式,例如:
─ 要求计数器与CCRx匹配时翻转OCx的输出引脚,设置OCxM=011
─ 置OCxPE = 0禁用预装载寄存器
─ 置CCxP = 0选择极性为高电平有效
─ 置CCxE = 1使能输出(极性选择,输出使能)

模式:PWM模式1:向上计数CNT<CCR时置高电平,CNT>=CCR时置低电平(还有一个向下计数一般不使用)
PWM模式2:向上计数CNT<CCR时置低电平,CNT>=CCR时置高电平
四、实际应用
驱动电机等,注意如果使用外部电源驱动电机的话外部电源要与单片机共地,对应的PWM引脚接在单片机的输出引脚上。在驱动大功率电机时必须要使用驱动芯片来控制,一般使用TB54芯片

图片来自江科大自化协