前言
近日,校方安排了每学期末例行的课程设计。本学期的课设主题为硬件方向的开发,由相关企业的讲师进行教学。
作为本学期的课设内容,我们将从广州粤嵌通信制作的STM32小车主体,根据其培训内容,进行STM32的基本编程教学及小车驱动教程。
设备基本原理
如图所示,机器核心为一块STM32F103C8T6,另带一个蓝牙模块,由一块SM接口的7.4V锂电池组供电。
小车前方带有一个连接了舵机的超声波雷达,前侧方各有红外避障模块,前下方带有四路循迹模块。
小车由两个双路电机驱动分别驱动左/右两侧马达动作,操纵小车运动。
(不得不说这小车还真没想象中的“小”。。。)
开发环境配置
如下图,根据厂商给出的资料,我们采用 STM32CubeMX 与 Keli μVision 5 进行开发
要正确的安装并配置,请确保安装路径无中文,磁盘空间充足。
创建工程文件
打开 STM32CubeMX ,选择 File – New Project。选择对应芯片,开始工程创建。
进入工程后,选择 System Core – RCC ,将 HSE 改为 Crystal/Ceramic Resonator。
随后选择 System Core – SYS ,将 Debug 改为 JTAG (4 pins) 。
进入 Clock Configuration,进行时钟设置,如图:
进入 Project Manager ,输入工程名,并设置 IDE 及其版本(最新版无法使用,请看图操作):
此时可以尝试点击右上角的 GENERATE CODE ,下载依赖包后进行代码生成。
基本运动控制
要实现对小车的基本控制,需要根据其原理图,对引脚进行正确的定义并编程。
从原理图可知,小车的马达控制电路如下(MVEN为供电控制,在原理图电机供电处):
在 STM32CubeMX 中,对引脚进行定义:
在 Pinout & Configuration 标签页中,左键对应引脚,选择GPIO_PINOUT。
然后在左侧的 System Core – GPIO 中,进行详细设置,如图所示。
点击 GENERATE CODE 生成代码,转到 Keli μVision 打开此工程。