
![]() 欢迎大家继续观看《STM32 生态系统》 介绍,第五期:STM32Cube嵌入式软件新成员 – 扩展功能插件。之前有平台反映,这个STM32生态系统的范畴好大,前面刚对STM32Cube工具有了一个总体认识,后面又切换到了两集STM32WB,然后又跳到cloud云连接来讲。这里我觉得有必要给大家一个整体的课程认识。确实,STM32生态系统的范畴非常大,但是在我这套视频规划里,它会从三个不同的角度来入手,分别是:芯片本身,即表格里的silicon;垂直应用,即Vertical这一列;还有就是横向的transveral,无论使用哪个STM32系列芯片,做哪方面的应用开发,都会用的STM32Cube 软、硬件工具。我会在这三个方面穿插来讲。 【芯片角度】STM32系列很多,这里主要针对ST当前主推的产品,比如STM32WB,它有哪些软硬件设计资源,工具;它和以往系列不同的地方,比如芯片的有线和无线升级这个话题,要做WB的有线近距离升级和远距离无线升级,需要用到的软件工具、协议栈、固件包等。在芯片这个维度,后续计划有STM32H7双核通信和调试,首个支持TrustZone架构的STM32L5。 【垂直应用角度】,Cloud的方案,会展开来讲,包括预测性运维、资产追踪和管理。在连接这个基本功能点,我们会介绍不变应万变的标准paho mqtt客户端,适配不同云平台连接的方式;Security信息安全,是IoT应用最重要也是最敏感的内容,STM32在这方面有大量的软、硬件积累,参考代码,方案,服务。会是后续的一个重点内容。 , Y# `& r$ i" a6 ?( R/ e6 S 【Cube工具】今年推出的STM32CubeIDE,很多用户表现出了极大地兴趣,我们也会有针对性的做一些深入介绍 接下来,我们就回归本期的主题,STM32Cube嵌入式软件新成员:扩展功能插件。我把它也放在第三列,transversal,是考虑到它属于STM32Cube固件包的一种新的发布形式,用户在使用的时候,与以往的Cube MCU固件包、Cube功能扩展包有所不同,具有更大的灵活性和扩展性。 STM32Cube的概念和范畴 7 J4 @9 N1 K/ z# B ![]() 页面左边的四大类工具,是在《生态系统 第一期》讲过cube tool。它们大部分是横向的transversal,即无论使用哪个STM32系列,做什么应用开发,都会用到的软件工具。最后一个CubeMonitor是有特定的应用范围。 页面的右边是STM32上的固件包,运行在STM32上的各种协议栈,功能库,例程等等。其中,右上的CubeMCU固件包,针对每一个STM32系列有独立的固件包。它里面的功能是generic、横向的。右下的Cube功能扩展包针对具体某一个功能。这两种固件包,大家都已经非常熟悉。今天我给大家介绍STM32固件包的新成员:功能扩展插件。 & ^9 Y$ }. {- m7 L' w 功能扩展插件 (1)STM32Cube MCU固件包 # b% L7 f3 K: A: u1 Y![]() 虽然大家对STM32Cube MCU固件包已经很熟悉了,从2014年第一个STM32CUbeF4问世,后面每个新出来的产品系列,都有一个独立的Cube MCU固件包;同时对在F4之前出来的F1、L1、F2也都补上了对应的Cube MCU固件包。但是随着Cube家族的扩充和演进,每个系列的Cube MCU固件包也不断有新的feature融入。 就拿下载方式来讲,以往的传统方式是去网站,每个独立的Cube MCU固件包有独立的下载页面。随着CubeMX的引入和发展,所有的Cube MCU固件包都可以以CubeMX为操作平台,自动刷新有无版本更新,并且通过在CubeMX界面上一键下载,无需再手动登录到官网页面,搜索这张胶片,概况了到现在2019年底,STM32官网上发布的14大系列产品线,它对应的Cube MCU固件包。刚才说,Cube MCU固件包里的功能是横向的,因此可以看到它包括了很多中间件模块,比如FreeRTOS,Fatfs,USB主机/设备协议栈、LwIP TCP/IP协议栈等。 4 m! N6 S. W$ `$ C: |9 H9 F, T 以G0的MCU固件包为例,我们看一下它里面的结构和内容 ![]() 胶片左图展开了STM32CubeG0固件包的结构。 >> 因为它是专门针对G0系列的,因此Driver目录下只有G0的HAL驱动 >> 中间件目录下,可以看到有来自第三方的文件系统Fatfs和FreeRTOS,来自ST的USB PD协议栈 >> project目录下,可以看到目前ST官方有6块基于G0的评估板,在这个目录的,每个评估板的子目录下,分别存放着在这个评估板下,pre-build好的项目。无需修改,下载后即可运行。 4 o$ j3 |/ m3 w; z2 \2 p/ \5 q 每个Cube MCU固件包里都有几个重要文档,希望大家不要忽略。 >> 在Documentation目录下,有个PDF文档,每个系列固件包里该文档的内容都差不多,第一次使用STM32Cube MCU固件包,建议好好读一下;它介绍了这个MCU固件包的架构、具体内容(支持的板子、文件夹内容)、如何运行首个例子程序,并如何从参考例子的.ico文件开始,开发自己的应用 >> Release Note,是在Project目录下,它说明了该Cube MCU固件包里每个软件模块的license,软件包里的bug >> CubeProjectList,也是在Project目录下,打开文件来看:一个表格,每一行是一个例子;每一列是一个板子;交叉处即是:该板子上是否有这个例子。交叉处的【-】,表示没有;【X】表示有;【CubeMX】表示该例子是由CubeMX工具生成的初始化吸、外设、中间件等,因此它有对应的*.ioc文件。 : u9 W- U( i! J! H) A& b (2)STM32Cube功能扩展固件包 6 {; Z* T' t' a0 O/ k( b ![]() 第二种STM32固件包是“STM32Cube功能扩展固件包”,目前它还不能像Cube MCU固件包那样,可以在CubeMX里刷新、查询是否有更新,并一键下载。还是需要手动到ST官网上下载,网址如图。胶片里贴的是Cube功能扩展包的主入口页面,扩展包的名字通常以X-Cube或者FP-开头。通过filter可以筛选以缩小搜寻范围。页面上筛选后的列表还可以通过export功能以excel文件形式导出。一般用户不大会用到,通常找到需要的功能扩展包,点击超链进去,就可以下载压缩包以及相关使用文档。 5 s, m* {/ _( Q- [ 我们以X-Cube-AWS这个功能扩展包为例, ; k: ?1 e2 h; F" D9 f& ?![]() X-Cube-AWS是压缩包的名字,解压后就是STM32CubeExpansion_Cloud_AWS,加上版本号作为尾缀。顾名思义,该功能扩展包就演示如何连接AWS IoT云平台的,该功能不在普通的Cube MCU固件包中,因此是一个“扩展”的功能。从Driver目录下,看它包含了F4、F7、L4三个系列的HAL驱动;同时Projects目录下,可以看到它支持了四个板子,有在这四个板子上pre-build好项目例程。这是和MCU Cube固件包第二个不同的地方。 和MCU cube固件包一样,每个功能扩展包也有相应使用文档,有些还有额外的辅助工具(比如这里的AWS-Dashboard,它是一个ST在AWS服务器上搭建的前端页面。用户在STM32板子上运行X-Cube-AWS例程的时候,可以在这个网页dashboard上,以视图的方式看到板子上传的传感器数据,并遥控板子的LED开关)。有些功能扩展包,还有搭配的手机app,配合使用。 " o: H1 n8 z6 I/ {/ i2 F7 B 总而言之,功能扩展包,它是针对一个特定的,在Cube MCU固件包中没有的功能;通常支持多个芯片系列的ST官方评估板。, O% W3 |& ]4 ^ 5 |( `+ K8 c6 t. h + z' f! K4 a" B) [8 n4 P5 @ |