https://download.csdn.net/download/qq_42700289/11504904
https://download.csdn.net/download/qq_42700289/86765856
这个可以帮助你了解PID
不知道你这个问题是否已经解决, 如果还没有解决的话:PWM是利用单片机的数字输出来对模拟电路进行控制的技术,其应用包含电机控制、通信、开关电源等等。PWM是一种对模拟信号进行数字编码的方法,其本质上还是数字信号,也就是在任意时刻端口输出要么是高电平要么就是低电平,电压或者电流是以一种通或端的重复脉冲序列被加到模拟负载上。因此只要带宽足够,理论上任何的模拟信号都可以使用PWM技术进行数字编码,如下图中所示。
在STM32F1中除了基本定时器TIM6与TIM7外,其它定时器都具备PWM输出的功能,输出PWM就是对外输出脉宽可调的方波信号,该方波信号的频率由自动重装寄存器ARR决定,占空比由比较寄存器CCR决定,因此改变CCR的值就会使PWM输出信号占空比发生改变(占空比=周期内高电平时间/周期总时间)。PWM最常用的输出模式是PWM1和PWM2,其区别如下表中所示。按照PWM计数器CNT的计数方式,可分为边沿对齐模式;中心对齐模式。
模式 | 计数器CNT计数方式 | 详细 |
---|---|---|
PWM1 | 递增 | CNT<CCR,通道CH为有效,否则为无效 |
PWM1 | 递减 | CNT>CCR,通道CH为无效,否则为有效 |
PWM2 | 递增 | CNT<CCR,通道CH为无效,否则为有效 |
PWM2 | 递减 | CNT>CCR,通道CH为有效,否则为无效 |