玩单片机的你,了解STM32Cube开发吗?

立即申请

教师介绍

  • 王维波

    中国石油大学

    博士,大学教师,从事测控技术与仪器专业相关的工作,主要研究地球物理探测仪器开发、监测数据处理方法和软件开发。著有《Qt 5.9 C++开发指南》一书。


课程简介

在学习STM32的时候,你学的是标准外设库还是HAL库

过去大家都使用标准外设库进行开发,因为它是对STM32芯片的完整封装,包括所有标准器件外设的器件驱动器。

但随着STM32的发展,目前标准外设库已停止更新,未来会逐渐被淘汰,由HAL库取而代之。

HAL是ST公司主推的STM32Cube生态系统的器件驱动库,STM32Cube生态系统是个高效的生产力工具,包含丰富的工具软件和器件驱动库。

目前,HAL库已经支持STM32全线产品

所以,现在学习STM32开发,应该学习基于STM32Cube 生态系统的开发方式。


STM32Cube是什么


在ST公司的发展过程中,STM系列嵌入式单片机也得到了飞速发展,目前STM32系列单片机(MCU)是国内市场占有率最高的32位单片机。从诞生至今,STM32的开发方式已经发生了很大的变化。

  • 2014年,ST公司推出了HAL库和MCU图形化配置软件STM32CubeMX;

  • 2019年4月,ST公司正式推出了IDE工具软件STM32CubeIDE 1.0.0;

  • 2020年2月,ST公司正式推出了STM32CubeMonitor 1.0.0。

至此,一个完整的STM32Cube 生态系统诞生了。

STM32Cube 生态系统


为什么要选择STM32Cube?


STM32Cube 生态系统包括嵌入式软件和软件工具两大部分。

  • 嵌入式软件

包括各个 STM32 系列 MCU 的固件库和一些扩展库,固件库包含STM32 MCU的 HAL 驱动库和移植好的各种中间件,例

如嵌入式操作系统FreeRTOS、文件系统FatFS等。

STM32Cube生态系统的工具软件及其作用

 STM32Cube生态系统的工具软件及其作用

  • 软件工具

STM32Cube 生态系统的软件工具支持配置、开发、烧录和监测的整个流程。其中,STM32CubeMXSTM32CubeIDE是STM32Cube 生态系统的两个核心软件。

  • STM32CubeMX用于MCU片上资源和外设的图形化配置,可以生成多种IDE软件的项目框架和外设初始化C语言代码,可大大提高开发效率。

  • STM32CubeIDE是一个STM32编程IDE软件,使用STM32CubeIDE可以编程、编译、下载和调试。STM32CubeIDE完全可以替代Keil或IAR的商业软件的功能。

STM32Cube开发方式有什么优势?我们称使用STM32CubeMX和STM32CubeIDE的开发方式为STM32Cube开发方式,这种开发方式有如下的优点:

  • 使用的软件都是ST公司提供的免费软件,避免了使用盗版软件可能出现的风险。

  • 使用STM32CubeMX进行MCU可视化配置并生成初始化代码可大大提高工作效率,并且生成的代码准确性高,结构性好,降低了STM32开发的学习难度。

  • STM32Cube生态系统具有丰富的嵌入式软件库资源,除了ST官方的MCU固件库和扩展库,还有很多第三方的中间库和扩展库,可缩短项目开发时间。

现在,ST公司已经淘汰了标准外设库,全力推进STM32Cube生态系统的应用。所以,学习STM32开发应该学习STM32Cube开发方式。


如何学习STM32Cube开发?


市面上介绍STM32开发的书比较多,但是很多书是基于标准外设库编程的,内容早已过时。介绍HAL库编程的书比较少,有的书在介绍HAL库编程时还带有标准库的印记,并没有完全发挥STM32CubeMX的作用,且这些介绍HAL库编程的书都采用MDK作为开发软件。

STM32CubeIDE 1.0.0是在2019年4月推出的,推出的时间比较晚,所以一直没有介绍使用STM32CubeMX和STM32CubeIDE进行STM32开发的书,直到《STM32Cube高效开发教程》的出现。

STM32Cube高效开发教程

《STM32Cube高效开发教程》以STM32CubeMX和STM32CubeIDE为开发软件,以STM32F407为例,全面而系统地介绍STM32的开发,包括相关工具软件的使用、STM32片上资源和外设的HAL编程方法、FreeRTOS等中间件的编程开发方法。

《STM32Cube高效开发教程》内容很多,所以分为基础篇高级篇两本。基础篇介绍STM32Cube开发方式所用的工具软件,以及STM32F407系统功能和常用外设的使用。

基础篇共22章,分为两大部分。

  • 第一部分是软硬件基础,介绍STM32Cube生态系统的组成,介绍STM32CubeMX、STM32CubeIDE、STM32CubeMonitor软件的使用,介绍STM32F407的基本架构和最小系统电路原理。

  • 第二部分介绍STM32F407系统功能和常用外设的原理和编程方法,包括中断系统原理和使用、DMA原理和使用、低功耗原理和使用,以及定时器、RTC、ADC、USART、SPI、I2C等常用外设的编程方法。

《STM32Cube高效开发教程》基本篇

《STM32Cube高效开发教程》基本篇

高级篇介绍固件库中一些中间件的使用,还介绍一些高级接口的使用。高级篇共22章,内容分为三大部分。

  • 第一部分是嵌入式操作系统FreeRTOS的使用,包含11章内容,全面介绍了FreeRTOS各种功能的使用,包括任务管理、中断管理、进程间通信技术等,其中进程间通信技术包括队列、信号量、互斥量、事件组、任务通知、流缓冲区和消息缓冲区。

  • 第二部分是使用FatFS管理文件系统,包含6章内容。这一部分介绍了在SPI接口Flash芯片上移植FatFS的过程,在SD卡、U盘上使用FatFS管理文件系统的方法。

  • 第三部分是图片的获取与显示,包含5章内容。这一部分介绍了BMP和JPG图片文件的读写和显示,电阻式触摸屏和电容式触摸屏的使用,以及简单的GUI程序设计方法。

《STM32Cube高效开发教程》高级篇

《STM32Cube高效开发教程》高级篇


选择这套书学习STM32Cube开发有哪些好处?


STM32是软硬件结合的编程,程序需要在开发板上运行,才能看到效果。为了让读者更好地理解书中介绍的原理,以及看到示例运行的效果,本书提供了多种配套资源

  • 全书所有示例项目的源代码

  • 开发板电路原理图

  • 全书所有示例项目在开发板上运行的演示视频,这些视频上传到了B站上,搜索“STM32Cube高效开发教程”就可以找到,作者的B站主页链接:https://space.bilibili.com/525935735

  • 所有示例运行的过程的图片整理成了一个PDF文件,可供下载后随时查看。

发布在B站上的示例运行演示视频

发布在B站上的示例运行演示视频

同时,本书作者王维波老师也将在QQ群(见本书前言)中为读者答疑解惑,在学习过程中遇到各种问题,都可以在群中与老师及同学们进行交流。