一个算是正常的中国码农!
分类: C/C++
2013-10-29 11:25:42
脉宽调制模式可以生成一个由TIMx_ARR寄存器的值确定频率和TIMx_CCRx寄存器的值确定占空比的信号。
可以对每个通道独立选择PWM模式,( OCx输出一个PWM信号)在TIMx_CCMRx寄存器的OCxM位写110(PWM模式1)或111(PWM模式2)。必须通过设置TIMx_CCMRx寄存器的OCxPE位,启用相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位,(在向上计数或中心对称模式中)使能自动重装载的预装载寄存器。
仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIMx_EGR寄存器中的UG位来初始化所有的寄存器。
OCx的极性可以通过软件在TIMx_CCER寄存器中的CCxP位设置,它可以设置为高电平有效或低电平有效。TIMx_CCER寄存器中的CCxE位控制OCx输出使能。详见TIMx_CCERx寄存器的描述。
配置步骤:
1. 使能相关时钟。
2. 配置相关的引脚模式、速度、以及复用功能。
3. 使能TIM时钟
4. 设置分频。
5. 设置周期。(ARR的值)周期=(PSC+1)* ARR / TIMx时钟
6. 产生一次更新事件,更新影子寄存器的值。
7. 在CCMR中设置PWM模式。
8. 设置各通道占空比。占空比= CCRx / ARR。
9. 使能比较输出。
10. 启动预装载。
11. 打开定时器。