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