STM32介绍

开发方式介绍

stm32是半导体厂商ST(意法半导体)生产的基于Arm Cortex的单片机系列,目前被广泛应用于工业,物联网,科创竞赛等。

目前国内大学生机器人竞赛Robomaster和Robocon主要使用的是stm32f4系列单片机,该系列基于Cortex-M4内核,具有较高的性能,CPU工作频率可以达到168MHz,基本可以满足比赛中所有的控制需求。

stm32的主流开发方式包括寄存器开发,标准库开发,HAL库(LL库)开发。

寄存器开发即直接控制32的寄存器,工程运行效率高,但是开发难度大,可读性与可移植性差;

标准库开发即使用ST官方开源的一套标准固件库进行开发,这套固件库对一系列寄存器操作进行了封装,降低了开发难度,提高了可读性和可移植性,但目前ST已经将推广的重心从标准库转移到了HAL库(LL库)上,虽然还是有许多工程在使用标准库进行开发,但无论是软件还是文档的更新速度,标准库都已经无法和后者比拟了;

HAL库(LL库)开发是ST开源的又一套新的库,与标准固件库的最大区别是,HAL库(LL库)支持ST开发的一款图形化工程配置软件STM32CubeMX,使用该软件可以大大提升开发效率和工程移植性,尽管由于HAL库采用了更加复杂的封装,降低了工程的运行效率,但是由于stm32本身强大的性能,中小型的工程依然能够流畅的运行。目前越来越多的用户开始使用HAL库(LL库)进行开发;

本系列教程采用的开发方式为HAL库(LL库)开发(以下简称HAL库开发),同时也是Robomaster中许多队伍选择的开发方式。

HAL库开发环境包括

  1. 代码编辑&编译器(Keil MDK,IAR等)
  2. 下载器驱动(JLink&STLink)
  3. STM32CubeMX

开发环境下载地址

keil mdk5安装全家桶

链接:https://pan.baidu.com/s/1o3znMYT_c_GfCc0abGqmYw
提取码:c957

cubemx安装全家桶

链接:https://pan.baidu.com/s/1-aiZpfv_dczfQBQFHCdApA
提取码:1sfe

安装教程

下载完以上两个压缩包之后再阅读后续内容!!!

安装步骤如下——

  1. Keil安装
  2. JLink,STLink驱动安装
  3. STM32CubeMX安装

1.Keil安装

首先,解压keil mdk5安装全家桶压缩包,点开之后看到如下内容——

首先点击MDK-523.exe进行MDK的安装,安装过程可以参考0-如何安装keil5.pdf

需要注意的是在选择安装路径的页面,一定要保证自己的路径中不含有中文注意!!!!不要含有中文!!下文中的软件同理,这是一个常识,不要在安装路径中带有中文!!

一直点击next,等待安装完成即可,跳出该页面可以直接关闭

安装完成后可以在桌面或者是引导菜单中看到这个绿油油的图标,说明keil已经安装完成。

安装完成之后,需要进行破解,首先以管理员方式打开keil(注意,管理员方式!!!

点击File->License Management..

复制Computer ID到剪贴板中

然后打开keil mdk5安装全家桶中的破解软件文件夹,右键Keil_ARM_MDK_5.00_Keygen_serial_Crack.exe,以管理员方式运行,需要注意可能会被windows defender或者别的杀毒软件当成病毒删掉,如果被删了就去对应的软件下面选择还原

将复制好的Computer ID复制到CID中,Target选择ARM,填完后点击Generate

将生成的破解码粘贴到keil中

点击Add LIC,如下图显示则破解成功

完成keil的安装破解之后,我们开始安装stm32f1与f4的芯片包,依然是在keil mdk5安装全家桶下,找到

直接双击安装即可,他们提供了f1和f4系列芯片的一些具体芯片信息,是下载和创建工程时必要的

2. JLink,STLink驱动安装

Jlink和STlink是常用的两种下载/调试器,一般我们使用jlink/stlink链接开发板与电脑,将电脑编译生成的可执行文件烧录到单片机上。

这是常见的jlink下载器,烧录时遵守jtag协议

这是stlink下载器,烧录时遵守swd协议

也有小型且便宜的stlink下载器

jtag可以兼容swd,也就是说使用jlink同样可以按照swd协议进行下载

Robomaster的开发板都是swd下载接口

我个人推荐使用jlink,因为jlink可以提供一些优秀的调试工具,比如jscope,这是一个功能强大的虚拟示波器,可以实时监视单片机中的变量

下面我们开始安装这两个下载器所需要的驱动——

keil mdk5安装全家桶下,找到Setup_JLink_V496.exe,双击运行,一路点击next,最后会弹出如下界面

勾选mdk,点击OK即可

成功安装后点击Finish

接着安装stlink

keil mdk5安装全家桶下,找到ST LINK驱动及教程文件夹,点击进入后找到ST-LINK驱动文件夹

64位系统点击dpinst_amd64.exe进行安装,一路next即可,成功后显示

STLINK调试补充教程.pdf下有更加详细的配置信息,以及升级stlink固件的方式,如果出现了不能下载的情况,可以参考该文档

STM32CubeMX安装

最后需要安装的是stm32cubemx,下载并解压cubemx安装全家桶,内容如下:

首先双击安装jre-8u191-windows-x64.exe,点击安装之后等待即可,当然你的电脑上可能有更高版本的java,如果有的话,就不必再进行安装了,出现如下界面则安装完成

然后双击安装SetupSTM32CubeMX-5.0.0.exe,如下界面说明安装完成

完成cubemx的安装之后,我们还需要安装软件库。运行cube,点击Help->Manage embedded software packages,在弹出的界面中点击左下角的From local,在弹出的界面中找到cubemx安装全家桶下的两个压缩包STM32Cube_FW_F1_V1.6.0.zipSTM32Cube_FW_F4_V1.19.0.zip,等待自动安装完即可

至此,cubemx所需要的环境也安装完毕了

点灯实验

为了检验自己安装的环境成功与否,参照如下视频进行点灯实验

https://www.bilibili.com/video/av26331717

需要注意的是,视频中使用的cubemx版本比较老,界面和此次安装的cube有所区别,但是两个版本cube的内容基本一致,大家可以慢慢摸索配置的方法,也可以等待下一次的视频更新,会有工程配置的过程。