功能简介:
按下KEY1使能电机,并进入控制模式;按下KEY2禁用电机,使电机停止
按下KEY3\KEY4可以调整占空比,以到达加减速的效果
按下KEY5可以反转电机转动方向
引脚分配
开发板A0/G2/C13/G3/G4---->输入模式不上下拉
开发板 PA8\PA9 <----> 复用模式高速推挽输出 电机驱动板 PWM1\PWM2
开发板 PG12<---->电机驱动板 SD
大致要点
- 初始化系统时钟
- 初始化按键GPIO--A0/G2/C13/G3/G4
- 电机初始化
- 定时器初始化
- CPIO初始化PA8\PA9->用于输出pwm
- 定时器输出模式配置->定时器1 ,频率15khz
- sd引脚的初始化-> PG12引脚pp输出
- 定时器初始化
- 电机失能、设置周期
- 循环中按钮功能:使能电机、失能电机、提高转速、降低转速
时钟
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的需要我们手动启动!!!
其他基本没什么坑了按着顺序,加一个然后一大堆×,一个个找到地方复制过来粘贴就好。