Hi,欢迎来到中国嵌入式培训高端品牌 - 华清远见嵌入式学院<北京总部官网>,专注嵌入式工程师培养13年!
当前位置: > 嵌入式学院 > 嵌入式学习 > 讲师博文 > 如何书写STM32的一个直流电机驱动
如何书写STM32的一个直流电机驱动
时间:2017-07-27作者:华清远见

声明:本博文适用于 华清远见智能小车上的STM32主控板的开发。在该电路板上,核心芯片为STM32F10RCT。电机驱动使用L298芯片

1 获取到电路元件

同时要获取到如下一些东西:

1.1 电路板

1.2 芯片说明手册 ( 芯片寄存器手册  + 电路原理图)

2 如何我们要做的是直流电机的驱动

2.1 开直流电机的驱动原理 – 》 马达驱动  

2.2 探究一下驱动电路与主芯片的关系

实际观察发现,马达的控制端口接在了电路板的P4器件 

根据实际电路发现P4是我们点击的控制管脚

经过查询资料发现

结论:INPUTx与OUTx输入输出为正比关系

所以我们可以通过控制INPUTx来控制小车的移动

经过搜寻文档我们发现如下电路:

经过电路分析发现

结论: PA2与INPUT1成正比关系

而PA2就是主芯片上的管脚!

所以,我们有如下结论:

PA2  INPUT1  OUT1

PB9  INPUT1  OUT2

 

PA1  INPUT1  OUT3

PC9  INPUT1  OUT4

PA0  INPUT1  ENA

PA3  INPUT1  ENB

 

所以我们有如下结论:

PA2 PB9 PA1 PC9 方向  PA0  PA3

 1   0   1   0   后方   1    1

 0   1   0   1   前方 

 1   0   0   0   左边

 ....

硬件分析步骤已经完成以下是软件书写过程:

我们首先通过STM32CubeMX来生成一些基础代码。请打开Cube软件进行如下选择:







然后配置为如下状态

之后点击工具栏中的 Proect  Generate Code(注意在生成代码的时候选择 MDK-ARM V5)

然后我们在对应的路径下找到要编辑的main函数也就是单片机在运作时要运行的入口函数。在其中找到该函数中MX_GPIO_Init();

下书写如下代码:

//设置电机状态

  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,1);

  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,0);

  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,1);

  HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,0);

  //设置电机使能状态

  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,1);

  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,1);  

然后在Keil中编译并稍写进入小车,查看情况。


发表评论

全国咨询电话:400-611-6270,双休日及节假日请致电值班手机:15010390966

在线咨询: 曹老师QQ(3337544669), 徐老师QQ(1462495461), 刘老师 QQ(3108687497)

企业培训洽谈专线:010-82600901,院校合作洽谈专线:010-82600350,在线咨询:QQ(248856300)

Copyright 2004-2017 华清远见教育集团 版权所有 ,沪ICP备10038863号,京公海网安备110108001117号