| 首次发帖、不周之处请指正! 先描述下问题,最近在做120度霍尔BLDC的控制,用STM32F103 TIM1产生六路PWM时出现问题。 想要实现的控制状态是可以控制六个通道中任何一个通道的PWM输出与关断,不用互补、不需要死区 选用引脚: TIM1配置如下图 主函数: 软件仿真: 我想要6路PWM的,但是只产生四路 PB0与PB1只在刚开始有输出 而且,当我把CH1设置为Disable时,CH1N仍然是Enable 仿真结果如下,CH1与CH1N不输出、其他四路输出正常 由此产生了几个问题 1、CH1的设置 会对PB0(CH2N) PB1(CH3N)产生影响? CH1 Enable,CH2N、CH3N不输出,CH1 Disable CH2N、CH3N输出 2、CH1由Enable变为Disable 对CH1N的输出产生了影响,CH1 的失能与使能时CH1与CH1N的总开关?我之后使能CH1、失能CH1N,除CH1N以外的其余五路输出 怀疑是库函数的原因、尝试用寄存器写 手册与配置 仿真结果如下图 想要的输出状态是上图红线标注的 CH通道关闭 CHN通道输出,百度过这种输出状态,有人说可以实现但是没讲方法 这样配置六路均有输出、但是PB0、PB1不正常 而且也不是我想要的输出状态,可能是配置问题,很少用寄存器,不清楚这么对不对,请指正 前边都是截图,补一下TIM1配置部分、main部分代码 [code] int main(void) { delay_init(); |
My_BLDC-try1.rar
下载3.44 MB, 下载次数: 531, 下载积分: ST金币 -1
我的代码
微信公众号
手机版
代码部分没贴上去,补一下
谢谢
关于如何输出六路互补带死区PWM波形,请关注“单片机STM32”公众号,里面有一篇文章“STM32定时器TIM1输出六路带死区互补PWM波形(一)”描述。
感兴趣可以下载源文件看哈