STM32G474 HRTIM 推挽模式下 关闭死区 在比较寄存器较小的情况下,存在输出脉宽直接到100%以下为初始化代码 LL_HRTIM_ConfigADCTrig(HRTIM1, LL_HRTIM_ADCTRIG_1, LL_HRTIM_ADCTRIG_UPDATE_TIMER_E, LL_HRTIM_ADCTRIG_SRC13_TIMEPER); LL_HRTIM_SetADCPostScaler(HRTIM1, LL_HRTIM_ADCTRIG_1, 0); LL_HRTIM_TIM_SetPrescaler(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_PRESCALERRATIO_MUL32); LL_HRTIM_TIM_SetCounterMode(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_MODE_CONTINUOUS); LL_HRTIM_TIM_SetPeriod(HRTIM1, LL_HRTIM_TIMER_E, TIMD_PERIOD); LL_HRTIM_TIM_SetRepetition(HRTIM1, LL_HRTIM_TIMER_E, 0x00); LL_HRTIM_TIM_SetUpdateGating(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_UPDATEGATING_INDEPENDENT); LL_HRTIM_TIM_SetCountingMode(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_COUNTING_MODE_UP); LL_HRTIM_TIM_SetTriggeredHalfMode(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_TRIGHALF_DISABLED); LL_HRTIM_TIM_SetComp1Mode(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_GTCMP1_GREATER); LL_HRTIM_TIM_SetDACTrig(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_DACTRIG_NONE); LL_HRTIM_TIM_DisableHalfMode(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_TIM_SetInterleavedMode(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_INTERLEAVED_MODE_DISABLED); LL_HRTIM_TIM_DisableStartOnSync(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_TIM_DisableResetOnSync(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_UPDATETRIG_NONE|LL_HRTIM_UPDATETRIG_NONE); LL_HRTIM_TIM_SetResetTrig(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_RESETTRIG_NONE); LL_HRTIM_TIM_EnablePushPullMode(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_TIM_DisableDeadTime(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_TIM_SetBurstModeOption(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_BURSTMODE_MAINTAINCLOCK); LL_HRTIM_ForceUpdate(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_TIM_DisableResyncUpdate(HRTIM1, LL_HRTIM_TIMER_E); LL_HRTIM_TIM_SetCompare1(HRTIM1, LL_HRTIM_TIMER_E, TIMD_PERIOD TIMD_DUTY_CYCLE); LL_HRTIM_TIM_SetCompareMode(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_COMPAREUNIT_2, LL_HRTIM_COMPAREMODE_REGULAR); LL_HRTIM_TIM_SetCompare2(HRTIM1, LL_HRTIM_TIMER_E, TIMD_PERIOD TIMD_DUTY_VSEN); LL_HRTIM_OUT_SetPolarity(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUT_POSITIVE_POLARITY); LL_HRTIM_OUT_SetOutputSetSrc(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUTPUTSET_TIMPER); LL_HRTIM_OUT_SetOutputResetSrc(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUTPUTRESET_TIMCMP1); LL_HRTIM_OUT_SetIdleMode(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUT_NO_IDLE); LL_HRTIM_OUT_SetIdleLevel(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUT_IDLELEVEL_INACTIVE); LL_HRTIM_OUT_SetFaultState(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUT_FAULTSTATE_NO_ACTION); LL_HRTIM_OUT_SetChopperMode(HRTIM1, LL_HRTIM_OUTPUT_TE1, LL_HRTIM_OUT_CHOPPERMODE_DISABLED); LL_HRTIM_OUT_SetPolarity(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUT_POSITIVE_POLARITY); LL_HRTIM_OUT_SetOutputSetSrc(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUTPUTSET_TIMPER); LL_HRTIM_OUT_SetOutputResetSrc(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUTPUTRESET_TIMCMP1); LL_HRTIM_OUT_SetIdleMode(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUT_NO_IDLE); LL_HRTIM_OUT_SetIdleLevel(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUT_IDLELEVEL_INACTIVE); LL_HRTIM_OUT_SetFaultState(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUT_FAULTSTATE_NO_ACTION); LL_HRTIM_OUT_SetChopperMode(HRTIM1, LL_HRTIM_OUTPUT_TE2, LL_HRTIM_OUT_CHOPPERMODE_DISABLED); LL_HRTIM_TIM_SetUpdateTrig(HRTIM1, LL_HRTIM_TIMER_E, LL_HRTIM_UPDATETRIG_RESET); LL_HRTIM_TIM_EnablePreload(HRTIM1, LL_HRTIM_TIMER_E); 下图为设置比较寄存器为0X05的输出波形,两个通道直接满占空输出 |
STM32F103C8T6是否支持TIM3的PWM边沿触发AD采集
FDCAN复用在了BOOT0上了,会不会有影响
CUBEMX配置G474串口DMA传输,为什么接收正常发送不了?
有没有人搞过单极倍频的SPWM
STM32G431的程序在正常运行半年多后,出现系统周期性复位,如何进一步排查 ?
STM32G474VET6如何配置HRTIM的中心对齐模式
求一份电流前馈电机控制的参考示例feed_forward_ctrl.c.h,
G474 HRTIM的6个Fault引脚能对应三个定时器的6个通道吗?
STM32G4 FLASH擦除不了,寻求各位大佬、官方的帮助
用mcsdk6.4工具使用ElectronicSpeedControl_ESC-G4生成的代码编译没错误但是开机就卡死怎么解决?
微信公众号
手机版
STM32高精度定时器PWM输出话题