kicer
kicer
这家伙很懒, 什么也没写!

注册于 1 年前

回答
1
文章
0
关注者
0

是设置的独立通道.

排查发现是 SDK 中__PWM_CountType_Config 函数的问题.
CR 寄存器中 CNTTYPEx 移位错误, 导致 CNTEN 被覆盖, patch 如下:

diff --git a/platform/drivers/wm_pwm. c b/platform/drivers/wm_pwm. c
index 7674828d3c020f718b0f71b67eb3ce29fd3f8e92. . a88d3e77b1241dccd118d9ce3d64d6ab5f157c72 100644
--- a/platform/drivers/wm_pwm. c
+++ b/platform/drivers/wm_pwm. c
@@ -70, 7 +70, 7 @@ HAL_StatusTypeDef __PWM_CountType_Config (PWM_HandleTypeDef *hpwm,  uint32_t Chann
     }
     else
     {
-        MODIFY_REG (hpwm- Instance- CR,   (0x0FF     (PWM_CR_CNTTYPE0_Pos + Channel * 2) ) ,  
+        MODIFY_REG (hpwm- Instance- CR,   (0x03     (PWM_CR_CNTTYPE0_Pos + Channel * 2) ) ,  
                      (CounterMode     (PWM_CR_CNTTYPE0_Pos + Channel * 2) ) ) ; 
     }

发布
问题