stm32+pwm输出+控制电机+PID控制电机可调速(上)
这几天学习了stm32一些知识,今天就来分享一下学习的小成果,关于stm32产生pwm通过电机驱动来控制电机转速,后期通过编码器来采集速度,对电机进行闭环控制,具算法是pid.
今天先来说说stm32如何产生pwm.stm32共有八个定时器,tim1和tim8是16位高级定时器,tim2,3,4,5是通用寄存器。 今天我们就用tim4来产生四路的pwm方波。
我用了TIM4-TH1 TIM4-TH2 TIM4-TH3 TIM4-TH4四个通道。它对应的管教就是PB6 PB7 PB8 PB9.对应板子上的管教式CD-15 CD-14 CD-30 CD-31.
![](../imgqa/ele/mcu/mcu-3721rd.com-16812405kmcyceiq.png)
找到开发板对应的引脚就好说了。开始配置
第一步 配置引脚
第二步配置tim_pwm信号模式 包括 周期 极性 占空比
配置好后在main()函数里初始化。给出
TIM4->CCR1 ;
TIM4->CCR2 ;
TIM4->CCR3 ;
TIM4->CCR4 ;
他们的值就可以发出pwm波形了。计算占空比的计算公式:
TIM4_PWM_DUTY_CYCLE=(TIM4->CCR1/TIM4_ARR)*100%
这里
TIM4->CCR1=500;
TIM4_ARR=1000;
占空比就是50%
由于没有示波器(悲催)这里只能用软件显示了
今天先写这么多。显示出了pwm.下一次就是用这个来控制电机转速 。
大神勿喷,菜鸟一枚。
感谢小编分享
用keil5吗小编,我看的介绍单机模式用CoIDE呀
好
好
不会吧,板子上有swd接口,用keil下载很方便啊
10引脚的swd不都是20的呀亲自己焊的还是买的
分享经验所得,谢谢小编。
谢谢分享!
你要有功夫自己做一个转接板不就可以了,或者找几根杜邦线连起来就好了,可以百度一下jlink上的那几根是swd
谢谢小编分享!
驱动什么电机呀这是
介绍的很详细。顶顶
后面的呢
小编能发一个代码文件吗?
小编能发一个代码文件吗?
小编,下半部分呢?
小编,下半部分呢?
厉害啊啊啊啊啊啊啊啊啊