首先pwm是建立在一个输出比较功能之上的
cnt通过ARR自动重装计时器来设定它所能达到的最大数目
这个输出比较会自动比较cnt与ccr寄存器值的关系来对电平进行置一置零或者翻转的操作。
四个输出比较通过说明可以同时进行输出思路pwm波形
可以通过选择输出比较的模式来选择让我们的ref电平是否翻转 什么时候置有效电平
这个是关于pwm参数的一些概念 这是以pwm模式1为例 红线是我们十二点的ccr的值 黄线90是自动重装寄存器的值 cnt不断自增到大于等于ccr时ref输出高电平 反之输出零 这样就输出了介于零一之间的电平
简单了解一下时基单元 时基单元有自动重装器有psc预分频器和计数器 特别的这个psc从零开始 如果psc=1那么系统时钟就是二分频72mhz除以2
先配置好时基单元然后配置输出比较 因为pwm最终要输出在引脚上所以要借用gpio引脚
接下来是代码部分
首先就是要配置好时钟gpio结构体 配置好时钟源 不配置的话默认是内部时钟tim2
然后配置时基单元选择预分频系数 period代表自动重装器(period有句号的意思)然后就是输出比较初始化ocinit选择比较模式 初始ccr的值,最后使能tim
部分图片来源于江协科技