跑电机之前先来测试下PWM的输出,确保PWM输出是正确的。
如下位置有测试点
为了方便仿真调试先关闭看门狗
没接电机会进入fault状态,可以先注释掉如下fault检测
死区和周期初始化代码
User\Inc\parameter.h中
死去时间定义为1us,即72M时钟,计时72个计数,即1uS
#define DEAD_TIME (1.0f * SYSCLK_HSE_72MHz/1000000) // unit:us 死区时间
测试如下看到非常准确
周期定义如下
#define PWMFREQ 16000 // unit:Hz 载波频率
#define PWM_PERIOD (SYSCLK_HSE_72MHz/PWMFREQ/2)
计数72000000/16000/2=2250个, 除以2是因为时钟中心对齐方式。
实测6个时钟345us,对应频率17.4KHz和16K有点偏差