STM32Cube笔记】系列文章目录

1-基于STM32的VSCode入门级教程前言
2-STM32Cube安装教程
3-STM32CubeIDE汉化
4-STM32Cube配置时钟设置
5-跑马灯引脚配置
6-Cortex-M7内核基本配置
7-新建用于储存代码的文件夹以及c/h文件
8-STM32CubeIDE点亮跑马灯
9-STLink调试
10-异步串口收发USART
11-中断控制器NVIC
12-配置外部中断
13-使用定时器产生PWM输出
14-使用定时器捕获上升/下降沿
15-数模转换AD/DA
16-STM32Cube个性化定制


4 软件安装

4.1 STM32H7系统的优势
STM32系列向来是单片机业界内的标杆型开发板, STM32H743单片机基于32位处理器480 MHz的Arm® Cortex®-M7内核(具有双精度浮点单元),带有FPU图形加速器。
内存系统选用了2MB的Flash以及1MB的RAM(864KB User)。
同时采用了双16KB的Cache缓存(16 KB的I-缓存 +16 KB的D-缓存),用于连接CPU与内存,CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,提高外部存储器的执行性能。
随着主频以及RAM和ROM的提高,使得MCU在处理数据时的延迟降低50%,而丰富的外围设备接口以及强大的RAM也可以支持同时接入更多设备,实现一块单片机电路操作更多的外设,能大大减少仪器内设备占用的体积。
外设支持:多达35个通信接口包括FD-CAN、USB 2.0高速/全速、以太网MAC、摄像头接口。2个双通道12位DAC,3通道快速16位ADC,16位高精度定时器上的多个16位和32位定时器运行频率高达480 MHz,拥有240个引脚的LQFP封装基本能一块芯片电路板就满足大部分的功能需求。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

ST意法半导体公司为了推广其芯片,专门开发了一整套免费的STM32配套使用方案,上至编写程序使用的STM32CubeIDE,下至烧录程序用的ST-Link下载器。在使用这套STM配套的单片机使用方案时,严密的连贯性以及人性化的界面操作使人爱不释手。
STM32CubeIDE相较于KEIL,首先引脚配置可通过图形化设置,不需要再去计算系统时钟该怎么分频,大大缩短了首次使用的耗费时间。其次STM32CubeIDE会自动将引脚初始化匹配至HAL库,也就是只需在界面中选择好某个引脚的模式,就可以在代码中用HAL库中封装好的集成函数对其进行控制。
同时STM32CubeIDE基于Java编程平台Eclipse,该平台IDE支持安装插件,更换主题,自动补充所需函数等操作,友好的用户交互环境,能使得调试单片机时心情舒畅。
如果搭配VSCode作为文本编辑器使用,能享受更加友好的IDE使用环境,同时还支持GIT代码系统管理,SVN储存代码工程,加密工程输出内容,自动优化代码风格等功能,详见《VSCode使用教程》。
当然ST-Link相较之前使用的RS232或J-Link也要方便不少,首先其支持在STM32CubeIDE中一键烧录,同时ST-Link能支持SWD,Flash,J-Link等多种烧录方式,占用的下载引脚也少。ST-Link还自带了专门给生产部门使用的STM32CubeProgrammer,详见《STM32CubeProgrammer使用教程》。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

4.2 STM32CubeIDE功能简介
STM32CubeIDE是ST官方免费提供的用于开发STM32的集成开发环境,其基于Eclipse或GNU C/C++工具链等开源解决方案,包括编译报告功能和高级调试功能。它还集成了其他工具,如STM32CubeMX、TrueSTUDIO。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

STM32CubeIDE在STM32中运用越来越普遍,其相对keil软件,有以下优势:
①直观的STM32微控制器的选择和时钟树配置;
②图形化配置外围设备和中间件的功能模式和参数:STM32微控制器选择,引脚分配,时钟,IP和中间件配置,项目创建和初始化代码的生成。
③STM32CubeIDE代码管理系统基于平台Eclipse优于KEIL:支持ECLIPSE的™插件,GNU C / C ++中ARM®工具链和GDB调试器。
④调试功能比KEIL方便:CPU内核、IP寄存器和内存视图,实时变量观看视图、系统分析和实时跟踪(SWV),CPU故障分析工具;
⑤STM32CubeIDE为完全免费的STM官方软件,只需使用STM芯片搭配正版的J-Link或ST-Link下载器就可使用。
4.2 STM32CubeIDE环境搭建
STM32CubeIDE的Eclipse基于JAVA的JRE运行平台,因此需要先安装JRE软件。本教程基于64位Windows系统编写,请将系统更新至64位系统再安装“jre-8u191-windows-x64.exe”,32位系统只能安装烧录软件STM32CubeProgrammer。
双击“jre-8u191-windows-x64.exe”安装包,按照软件安装向导完成JRE安装。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

4.3 STM32CubeIDE软件安装
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

需要将“st-stm32cubeide_1.5.0_8698_20201117_1050_x86_64.exe”安装包复制到英文目录下,例如桌面。双击“st-stm32cubeide_1.5.0_8698_20201117_1050_x86_64.exe”安装包,然后按照安装向导默认的勾选项完成STM32CubeIDE的安装。其中下图的安装界面不要取消默认勾选的两个选项,否则会影响J-Link和ST-Link的驱动安装。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

4.4 ST-Link简介
由于STM32Cube必须基于STM平台,且STM32会额外有一种自己的DEBUG方式—–ST-Link。这种下载方式为STM独有的下载模式,实际上就是SWD、JLink、SWIM的整合体,优点在于正版的ST-Link比正版的JLink便宜。
注意,STM32Cube只识别正版ST-Link和正版J-Link,其他下载方式均不可用。
ST-Link的连接方式分为两种,一种是通过Jlink插座连接,另一种是通过SWD连接,第二种方式比较省空间和端口,两者均需要额外接入5V电源。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

5 STM32CudeIDE初次使用
本章节以跑马灯实验为例子,介绍如何新建STM32CudeIDE工程、配置工程文件、配置芯片时钟、配置芯片GPIO、配置Cortex-M7内核……需要的硬件工具有ST-Link、USB MINI 下载线、STM32HH743开发板、5V供电电源。

【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

5.1 新建STM32CudeIDE工程
在桌面新建文件夹,命名为“LEDTest_Project”(根据实际需求选择文件夹存放路径和命名,其中路径不能包含中文),用于存放跑马灯实验的工作空间。打开STM32CubeIDE软件,点击“Browse…”按钮,选择 “LEDTest_Project”文件夹路径作为工作空间存放路径,然后点击“Launch”按钮,启动运行STM32CubeIDE。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

软件打开后,会弹出ST公司关于“是否同意收集用户操作特性”的咨询界面,直接点击“No Thanks”按钮。

【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

点击“Start New STM32 project”按钮。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

在搜索栏中输入需要配置的STM32芯片名称进行搜索,例如本文使用的芯片就输入“STM32H743II”,并单击选择对应封装“ LQFP176”,即可进入下一步。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

在进入芯片详细页面后,可以点击“Block Diagram”或者“Datasheet”对芯片进行概览。在确认芯片信息与手头的芯片一致后,点击Next下一步开始配置芯片。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

输入工程名,其余选型默认,点击“Finish”按钮。操作该步骤前需要保证网络正常,因为STM32CubeIDE需要下载对应芯片的数据包,也可以到STM官网上下载可离线安装的数据包。
【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

点击“Yes”按钮。

【STM32Cube笔记】2-STM32Cube安装教程-编程知识网

进入软件后,会发现语言是英文的,但我们可以安装插件实现对IDE的汉化。

【STM32Cube笔记】2-STM32Cube安装教程-编程知识网