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 4路PWM,如何驱动步进电机,怎么调整相位.......?