论坛元老
 
- 积分
- 3571
- 金钱
- 3571
- 注册时间
- 2014-12-2
- 在线时间
- 365 小时
|
发表于 2020-12-20 09:41:45
|
显示全部楼层
做过类似的。给你提供一个思路
你要用两个定时器,假设为定时器A和定时器B。
定时器A用于产生PWM,并需要额外配置:
1. 设置CR2寄存器,主模式工作时,把Update事件作为TRGO输出信号送出去(即PWM每过一个周期发出一次TRGO,用于给定时器B计数);
2. 设置SMCR寄存器,从模式工作时,选择触发源为ITRx(B定时器的TRGO),从模式选择为Reset Mode或Gated Mode,即TRGI一来信号就复位或停止。
定时器B用于PWM脉冲计数,并设定计到一定数之后反过来触发定时器A勒令其停止:
1. 设置CR2寄存器,主模式工作时,把Compare Pulse事件作为TRGO输出信号送出去(即一旦计数到CC1通道就发出一次TRGO,用于给定时器A停车信号,因此想要发出多少PWM脉冲数就设置CC1的数值即可);
2. 设置SMCR寄存器,从模式工作时,选择触发源为ITRx(A定时器的TRGO),从模式选择为External Clock Mode 1,即TRGI一来信号就计数一次。
|
|