STM32CubeMX教程

本文最后更新于:2024年3月7日 晚上

从这里作为电控学习的起点叭~

简介和安装

STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。

STM32CubeMX和STM32CubeIDE的区别

  • STM32CubeMX 是个图形化配置工具,最大的好处是帮用户生成相应的初始化代码。
  • STM32CubeIDE 是编译器,最大的功能是帮助用户编译调试代码,包括 STM32CubeMX 生成的项目代码。STM32CubeIDE 也同时集成了STM32CubeMX工具。

安装方法

  • Stsp 1: Oracle官方下载JRE
    由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用。在官网下载即可:这里是官网下载的地址

  • Step 2:ST官方下载STM32CubeMX工具
    官网下载

  • HAL库安装:

    • STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。
    • HAL库有在线安装、离线安装两种方式。建议使用在线安装,简单省事;不同芯片型号对应的HAL库不一样,要分别安装
    • 在线安装:打开安装好的 STM32CubeMX 软件 点上面Help -> Manage embedded software packages -> 选择芯片型号 -> “Install Now”

    HAL库安装

  • IDE安装:这里选择Keil MDK5:
    Keil是德国知名软件公司Keil开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。
    Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。

  • Keil MDK5 安装教程

    • 安装注意事项:
      1 )安装路径为英文路径(不要是中文路径)。
      2 ) 系统用户名不能为中文
      3 )多个版本 MDK ( Keil )不要安装在同一目录。
      4 ) MDK5 需要加载芯片对应的支持包。
  • USB 串口驱动安装

    • USB串口的作用:
      1 )可以当串口使用。
      2 )使USB 串口连接到 STM32 的串口1(STM32
      ISP 下载只能是串口 1) ,可用串口下载程序。
      3 )可用 USB 供电
    • USB 串口驱动芯片型号:CH340
    • 串口下载工具: mcuisp(FlyMcu)
      • FlyMcu 模拟仿真软件是一款用于 STM32 芯片 ISP 串口烧录程序的专用工具,免费,且较为非常容易下手,好用便捷。
      • 注意:STM32 芯片的 ISP 下载,只能使用串口1(USART1),对应的串口发送接收引脚 PA9、PA10。不能使用其他串口来代替。
      • FlyMcu安装教程
  • JLINK驱动安装:安装了驱动之后,就可以在 windows 下配合MDK 进行程序下载和调试。

快速开始(以STM32F407VEST为例)

补充:stm32系列的命名规则:

stm32系列的命名规则

选择具体型号的芯片

在首页点击ACCESS TO MCU SELECTOR,搜索选择具体型号的芯片,点击Start Project

  • 常用的芯片可以点击收藏起来,不用每次都搜集了。

芯片导入

配置系统核心

选择左侧System Core

Step 1: 配置外部时钟 (晶振) 输入

stm32主控芯片的内部是有两个时钟的,分别是内部高速和内部低速,但是一般不会特别精准,所以需要外接时钟电路:

  • 外接时钟电路,一般高速晶振的频率是8 MHZ,通过倍频器可以达到72 MHZ。低速晶振的频率是32.768KHZ。

RCC配置外部高频晶振

配置好之后,芯片晶振对应的引脚变为绿色。

Step 2: 配置调试引脚

选择SYS选项 -> Serial Wire

本人使用ST-link,故选择SW,其他调试器请按照对应的进行选择

配置好之后,芯片的引脚变为绿色。

  • 至于为什么需要配置Serial Wire?
    原因是,STM32的GPIO口都是有复用功能。 其中,PA13与PA14都有两种功能 :
    PA13可以是JTMS,也可以是SWDIO。STM32默认是JTAG模式,所以PA13默认是JTMS,并不是SWDIO。
    • 在Debug栏目,选择Serial Wire(SWD模式)之后,PA13是SWDIO,PA14是SWCLK。然后PA15,PB3,PB就只是普通的GPIO。

SWD简介

SWD是Serial Wire Debug的简称,翻译成中文是”串行线调试”。 SWD是ARM目前支持的两种调试端口之一,另一个调试端口叫做JTAG Debug Port,也就是我们常用的J-link上面的调试端口(JTAG模式下)。

基于ARM CoreSight调试构架,SWD可以通过传输数据包来读写芯片的寄存器。SWD是用于访问ARM调试接口的双线协议。它是ARM调试接口规范(ARM Debug Interface Architecture Specification)的一部分,是JTAG的替代品。SWD的物理层由两条线组成:

  • SWDIO: 双向数据线
  • SWCLK: host驱动的时钟线

详细了解SWD,可以看看这些:

Step 3: 配置时钟分频

点击上方Clock Configuration
修改想要的时钟频率,一般选最大速度。F407最大速度为168Mhz。修改之后软件会自动分频。

配置时钟分频

基础配置到此结束,接下来就是按照需求配置引脚。

按照需求配置引脚

学会阅读开发手册

学习STM32F407主要下载这几个手册。不光学习STM32需要这类手册,学习FPGA、DSP也是这些类型的手册,熟练查阅和使用这些手册也是电子工程师必备的知识之一。

  • 参考手册(Reference Manual)
    对芯片每个外设的具体描述和功能介绍,比如我们要查USART,SPI,DMA相关寄存器和功能的介绍就可以使用这个手册。

  • 数据手册(Data Sheet)
    在我们要画PCB的时候用到这个手册的情况比较多,这个手册上面有关于这个系列芯片的引脚定义、电气特性、机械封装、料号定义等信息。

  • 勘误手册(Errata Sheet)
    描述了芯片某些功能的局限性,并给出解决办法。这个手册也比较重要,有时候我们觉得有些地方调试老是出问题,就需要查找一下,看看是否是硬件bug。

  • 闪存编程手册(Flash Programming Manual)
    芯片的片上Flash操作指南,比如芯片的擦除,编程,闪存读写保护,选项字节信息等。

  • 内核编程手册(Cortex-M Programming Manual)
    对内核的系统控制块的介绍。这个手册有时候也要用到,比如我们需要了解NVIC和SysTick相关的寄存器,就需要使用这个手册。这个手册可以在ARM官方网站下载,也可以到ST官网下载,区别是ARM官网下载的手册是通用的,而ST的是针对自家芯片做的。有时候在参考手册上面找不到相关寄存器的信息时,就需要用到这个手册。

  • 应用笔记(Application Note)
    针对不同应用主题的描述性文档,部分笔记还会有配套的固件例程。应用笔记的重要性不言而喻,很多时候官方对一些应用做出了解决方案,都会以应用笔记的形式发布。

  • 用户手册(User Manual)
    一般是对某个软件库的说明文档。

  • Cortex-M3/M4权威指南
    这也是非常重要的参考资料,了解了内核才能更好的利用M3/M4。
    论坛下载地址

查找手册方法

进入ST官方地址,页面上侧中间编辑框输入STM32F407检索,Profucts -> Resources,下载需要的技术手册的PDF即可。

  • ST中文社区,里面的资料全部由ST中国区的人负责更新和整理,包含了所有ST公司的MCU资料,比如:STM32F4最新的芯片文档(参考手册、数据手册、勘误手册、编程手册等)、软件资源(固件库、配置工具、PC软件等)、硬件资源(各种官方评估板)等。

正点原子的教程

教程看这里

程序下载的五种方式

一.JLINK烧录程序

JLINK 是一个兼容 JTAG 的仿真器,可以烧录程序和调试

调试 ARM ,需要遵循 ARM 的调试接口协议, JTAG 就是其中的一种。JTAG 是一种国际标准测试协议,也叫 ARM 调试协议。现在多数的高级器件都支持 JTAG 协议,如 DSP 、 FPGA 器件等。

硬件连线

烧 STM32 只要用 4 条杜邦线就可以了,和 STM32 ST-LINK Utility 下载连线一样,采用SWD 接口模式。
即:GND接GND,SWDIO接SWDIO(TMS),SWCLK接SWCLK(TCK),3V3接3V3

正版ST-link/V2 J-LINK JTAG/SWD引脚定义和注意事项

程序下载

二.使用ch340串口烧录程序

教程

三.使用STLink烧录程序

教程

  1. 点击魔术棒:

连接STLink

  1. 设置“Cortex-M Target Driver Setup”窗口中的“Debug”页面。
  • 点击“Debug”。
  • 将“Unit”选择为“ST-Link/V2”。
  • 将Port设置为“SW”。
    使用 JTAG 需要占用比 SWD 模式更多的 IO 口,而在开发板上这些 IO 口可能被其他外设用到,可能造成部分外设无法使用。所以在调试的时候,一定要选择 SW 模式。
  • 设置数据传输速率。

设置STLink参数

  1. 设置“Cortex-M Target Driver Setup”窗口中的“Flash Download”页面
  • 点击“Flash Download”。
  • 选择“Erase Full Chip”。
  • 勾选“Program”、“Verify”、“Reset and Run”。
  • 添加“Flash Program Algorithm”,我使用的是STM32F429,所以选择“STM32F4xx Flash”。
  • 最后点击“确定”,完成配置。

设置STLink参数

  1. 确认一下,“Utilities”页中,“Use Debug Driver”和“Update Target before Debugging”两项已经勾选上。
      “Use Debug Driver”指的是选择 ST-Link 来给目标器件的 FLASH 烧录编程。
      “Update Target before Debugging”指的是先将程序烧录到 FLASH 上,再开始调试。

F8烧录程序

烧录程序

断电后,重新供电开机要先复位


STM32CubeMX教程
http://zoechen04616.github.io/2024/03/02/STM32CubeMX教程/
作者
Yunru Chen
发布于
2024年3月2日
许可协议