stm32输出pwm,怎么控制直流电机的正反转?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32输出pwm,怎么控制直流电机的正反转?相关的知识,希望对你有一定的参考价值。

#define M1_PWM_VAL TIM3->CCR1

void PWM1_1_Init(u16arr1,u16 psc1)

//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1; //TIM3时钟使能
GPIOA->CRL&=0XF0FFFFFF;//PA6输出
GPIOA->CRL|=0X0B000000;//复用功能输出
GPIOA->ODR|=1<<6;//PA6上拉
TIM3->ARR=arr1;//设定计数器自动重装值
TIM3->PSC=psc1;//预分频器不分频
TIM3->CCMR1|=7<<4; //CH1 PWM2模式
TIM3->CCMR1|=1<<3; //CH1预装载使能
TIM3->CCER|=1<<0; //OC1 输出使能
TIM3->CR1=0x8000; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3

正转时, 是不是二个IO口,一个普通IO口为0,一个IO口用pwm控制,pwm输出一个正数值,
(如 M1_PWM_VAL=300)
反转时,一个普通IO口为1,一个IO口用pwm控制,pwm输出一个负数值,(如 M1_PWM_VAL=-300)
非常感谢。。。。。。。。

PWM信号只是控制信号,想要控制电机驱动,还需要驱动电路,比如H桥、驱动芯片等。正装是一个输出控制PWM信号,另一个输出低电平。反转是一个输出低电平,另一个输出控制PWM,设置成复用就当成普通的IO口,输出低电平。

通过调节PWM的占空比就能调节IO口上电压的持续性变化,因此也能够控制外设的功率进行持续性变化,也就能控制直流电机的转速快慢。

扩展资料:

注意事项:

1、在STM32中拥有多路PWM信号。每一个定时器的输出引脚都可以设置成相应的PWM信号的输出。PWM信号主要的参数有两个,周期的占空比。周期主要是由对应的定时器来确定。占空比就是PWM输出高电平的时间。    

2、在程序运行中可以使用TIM_SetCompare1()来改变相应的占空比。这样就可以实现灵活的控制PWM信号的输出。

3、管脚的IO输出模式是根据应用来定,比如如果用PWM输出驱动LED则应该将相应管脚设为AF_PP,否则单片机没有输出。

参考资料来源:百度百科-stm32

参考资料来源:百度百科-PWM

参考资料来源:百度百科-直流电动机

参考资料来源:百度百科-电机正反转

参考技术A PWM信号只是控制信号,想要控制电机驱动,还需要驱动电路,比如H桥、驱动芯片等等。

正装是一个输出控制PWM信号,另一个输出低电平。
反转是一个输出低电平,另一个输出控制PWM。
设置成复用就把它当成普通的IO口,输出低电平。
参考技术B 没有桥没极性,-30就无效电平了追问

有桥有极性的话,-300有效吗?驱动上的二条接单片机线能不能都用pwm控制?

追答

-300=65536-300+1

追问

驱动上的二条接单片机线能不能都用pwm控制?-300=65536-300+1这是什么意思?刚学不太懂

参考技术C 加我QQ:370716937 黑马

STM32 4路PWM,如何驱动步进电机,怎么调整相位.......?

设定定时器一个主,一个从模式,相位自己选择。 参考技术A 步进电机不是PWM控制的. 一般用PWM控制直流电机的 速度.

以上是关于stm32输出pwm,怎么控制直流电机的正反转?的主要内容,如果未能解决你的问题,请参考以下文章

STM32的PWM控制步进电机,怎么实现精确控制输出脉冲数

STM32 4路PWM,如何驱动步进电机,怎么调整相位.......?

怎么用STM32输出PWM信号,从而通过电调控制无刷电机

请问stm32中foc库怎么切换正反转方向

STM32怎么输出六路频率和个数可控的PWM波形?不要频繁中断的设置,因为还有其他程序要处理

stm32输出的pwm有啥用