当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 如何书写STM32的一个直流电机驱动

如何书写STM32的一个直流电机驱动 时间:2018-09-29      来源:未知

声明:本博文适用于 华清远见智能小车上的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中编译并稍写进入小车,查看情况。

上一篇:如何使用vim的插件Ctags查看Linux源码

下一篇:ser2net在FS4412开发板上的移植

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部