DRE90L4BE2HR/AMB2/TF/ES7S/V/C寄存器(一共有CCR1~CCR4这4个通道)为例:
位31:16 CCR1[31:16] :捕获/比较 1 的高 16 位(对于 TIM2 和 TIM5)。
位15:0 CCR1[15:0] :捕获/比较 1 的低 16 位 (Low Capture/Compare 1 value)
如果通道 CC1 配置为 输出 :CCR1 是捕获/比较寄存器 1 的预装载值。如果没有通过 TIMx_CCMR
寄存器中的OC1PE
位来使能预装载功能,写入的数值会被直接传输至当前寄存器中。否则只在发生更新事件时生效(拷贝到实际起作用的捕获/ 比较寄存器1)。实际捕获/比较寄存器中包含要与计数器 TIMx_CNT
进行比较并在 OC1 输出上发出信号的值。
如果通道 CC1 配置为 输入 :CCR1 为上一个输入捕获 1 事件 (IC1) 发生时的计数器值。
4
4代码实现与分析
上面介绍了定时器的基础知识与PWM的输出原理,下面就来实际看一下,如何编写对应的代码(以STM32F407为例)。
定时器的初始化,因为需要用到对应的引脚输出PWM,因此要先初始化 GPIO引脚 ,然后,还要初始化定时器的 时基 (计数的时钟)以及 输出通道 (用于配置PWM的输出模式)。
DRE90L4BE2HR/AMB2/TF/ES7S/V/C
DRE90L4BE2HR/AMB2/TF/ES7S/V/C