STM32
直播中

叹久

9年用户 838经验值
擅长:可编程逻辑 光电显示 接口/总线/驱动
私信 关注
[问答]

利用TIM1的OC1/OC1N, OC2/OC2N(连接到PA8/PB13, PA9/PB14)分别输出PWM波形控制步进电机遇到的问题求解

利用tiM1的OC1/OC1N, OC2/OC2N(连接到PA8/PB13, PA9/PB14)分别输出PWM波形控制步进电机,
有几点问题:
1、控制CCxE和CCxNE位来改变步进电机的相位,但是,当CCxE输出为低时,CCxNE不能输出PWM,只能为高电平
2、软件仿真(RMDK环境软仿真)下能生产波形,波形如下所示,但是,通过ST-LINK下载到STM32RB芯片后,引脚都为低电平(注:下载肯定没有问题,用PA4/PA5/PA6/PA7 4个IO模拟相位变化可以实现步进电机转动)。
有碰到类试应用的或问题的,帮忙解答。

回帖(1)

1652711011.026500

2024-5-18 17:26:27
根据您提供的信息,您在使用STM32微控制器的TIM1定时器的OC1/OC1N和OC2/OC2N通道输出PWM波形来控制步进电机时遇到了一些问题。以下是针对您的问题的一些建议和解决方案:

1. 关于CCxE和CCxNE的问题:
   当CCxE输出为低时,CCxNE不能输出PWM,只能为高电平。这是因为在STM32的定时器中,当CCxE位设置为0时,输出通道将被禁用,而CCxNE位将被忽略。为了解决这个问题,您可以尝试以下方法:
   a. 确保CCxE位在需要输出PWM时设置为1。
   b. 在设置CCxE位之前,先设置CCxP极性位,以确保输出波形的极性正确。

2. 关于软件仿真与实际硬件运行的差异:
   在RMDK环境下的软件仿真可以生成波形,但是在实际硬件上运行时,引脚输出为低电平。这可能是由于以下几个原因:
   a. 硬件连接问题:请检查您的硬件连接是否正确,确保引脚连接到正确的步进电机驱动器。
   b. 引脚配置问题:请确保您已经正确配置了引脚的GPIO模式、速度和输出类型。例如,您可能需要将引脚配置为推挽输出(Push-Pull)模式。
   c. 定时器配置问题:请检查您的定时器配置是否正确,包括预分频器、自动重载寄存器和捕获/比较模式寄存器等。
   d. 中断和DMA配置问题:如果您使用了中断或DMA来控制PWM输出,请确保相关配置正确。

3. 调试建议:
   a. 使用示波器或逻辑分析仪检查引脚的输出波形,以确定问题是否出在硬件连接或配置上。
   b. 在代码中添加调试信息,例如打印引脚状态、定时器配置等,以便在出现问题时快速定位问题所在。
   c. 尝试使用其他引脚或通道输出PWM波形,以排除特定引脚或通道的问题。

希望以上建议能帮助您解决在使用STM32微控制器控制步进电机时遇到的问题。如果问题仍然存在,请提供更多详细信息,以便我们能够提供更具体的帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分