我有一个STM32F051驱动一个H桥(适当的门驱动器和过流脉冲发送回微控制器),使用TIM1和互补信号(和死区时间产生)为变压器供电。
我试图配置不同的“安全”状态,具体取决于所接收的过流脉冲:
其思想是提高逆变器的过流性能。
是否有可能在接收到GPIO上的脉冲时,手动将定时器的输出设置为定义状态?我试过使用safe函数,但您只能设置一个预定义的“安全”状态。对于我的应用程序,我需要两个(目前,更多)。
发布于 2020-10-28 09:55:55
最后,我发现了结果,并与你分享。
#define TIM_CCMR1_OC1M_INACTIVE (0x2 << 4)
#define TIM_CCMR1_OC1M_FORCE_LOW (0x4 << 4)
#define TIM_CCMR1_OC1M_FORCE_HIGH (0x5 << 4)
#define TIM_CCMR1_OC1M_PWM2 (0x7 << 4)
#define TIM_CCMR1_OC2M_INACTIVE (0x2 << 12)
#define TIM_CCMR1_OC2M_FORCE_LOW (0x4 << 12)
#define TIM_CCMR1_OC2M_FORCE_HIGH (0x5 << 12)
#define TIM_CCMR1_OC2M_PWM2 (0x7 << 12)用于禁用和启用输出的实用程序函数。
void disable_pwm(){
TIM1->CCER &= ~(TIM_CCER_CC1E | TIM_CCER_CC1NE | TIM_CCER_CC2E | TIM_CCER_CC2NE);
}
void enable_pwm(){
TIM1->CCER |= (TIM_CCER_CC1E | TIM_CCER_CC1NE | TIM_CCER_CC2E | TIM_CCER_CC2NE);
}这里是如何强迫H桥缩短荷载到地面作为一个例子。
TIM1->CCMR1 &= ~TIM_CCMR1_OC1M_Msk;
TIM1->CCMR1 |= TIM_CCMR1_OC1M_FORCE_LOW;
TIM1->CCMR1 &= ~TIM_CCMR1_OC2M_Msk;
TIM1->CCMR1 |= TIM_CCMR1_OC2M_FORCE_LOW;希望这会对其他人有用!
https://stackoverflow.com/questions/64374256
复制相似问题