野火电机+CUBEMX——直流有刷电机的实现

本文档详细介绍了如何使用STM32进行电机控制,包括按键初始化、电机初始化、定时器配置和PWM输出,以实现电机的启停、占空比调整和方向反转。还涉及到系统时钟、GPIO、定时器和引脚分配的设置,以及CUBEMX工具的使用步骤。在代码实现过程中,强调了手动启动PWM的重要性。
摘要由CSDN通过智能技术生成

功能简介:

按下KEY1使能电机,并进入控制模式;按下KEY2禁用电机,使电机停止

按下KEY3\KEY4可以调整占空比,以到达加减速的效果

按下KEY5可以反转电机转动方向

引脚分配

开发板A0/G2/C13/G3/G4---->输入模式不上下拉

开发板 PA8\PA9 <----> 复用模式高速推挽输出 电机驱动板 PWM1\PWM2

开发板 PG12<---->电机驱动板 SD

大致要点

  1. 初始化系统时钟
  2. 初始化按键GPIO--A0/G2/C13/G3/G4
  3. 电机初始化
    • 定时器初始化
      • CPIO初始化PA8\PA9->用于输出pwm
      • 定时器输出模式配置->定时器1 ,频率15khz
    • sd引脚的初始化-> PG12引脚pp输出
  4. 电机失能、设置周期
  5. 循环中按钮功能:使能电机、失能电机、提高转速、降低转速

时钟

A.晶振:

-外部高速晶振:25MHz

-RTC晶振:32.768KHz

B.各总线运行时钟:

-系统时钟 = SYCCLK = AHB1 = 168MHz

-APB2 = 84MHz

-APB1 = 42MHz

C.浮点运算单元:

  不使用

CUBEMX的初始化

选择对应芯片

 设置debug模式

 设置时钟源

配置时钟

 设置引脚——以PGA0为例

 同样的操作设置好A0/G2/C13/G3/G4/PG12(PG12为输出模式)

 

 此时未发现SYS设置中有选项变为紫红色,这是提示该功能所需条件已被其他功能使用,不可使用的意思,是CUBEMX保证功能不冲突的提示,此处为PA0被使用的原因,如图

 对gpio引脚进行设置,按照所需设置,如是否上下拉、输入输出模式等,此处只需设置输出引脚的速度

 设置定时器pwm功能

 设置定时器gpio,默认选择为PE9PE11,需自己在右侧配置PA8\PA9

 

 定时器引脚输出速度均选为高速

 准备输出文件,在此之前需要配置文件

 

 生成文件

 打开工程,编译,框架就搭好了,接下来就是将野火的代码按照所需复制粘贴进去

 为了放置按键控制电机的代码,自己建立一个c和h文件来单独放置

 

 将文件添加进工测并做好基础配置(记得加文件地址,我这一步没展示出来,大家应该都知道的)

 

 

 接下来打开野火和我们自己创建好的框架文档,按着顺序将所需宏,函数等一步步添加配置好,缘更了emmmmm就是将下面这一堆一条条复制过来放到正确位置,然后写一条debug一次,将所需函数宏复制到合适地方,再写一下条直到结束

特别注意的是,pwm的需要我们手动启动!!!

其他基本没什么坑了按着顺序,加一个然后一大堆×,一个个找到地方复制过来粘贴就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值