STM32的Cube和HAL生态

  • 目录
    • 章节介绍
  • 一、单片机软件开发的时代变化
  • 二、STM32软件开发的各种模式
  • 三、 STM32CubeMX工具入门与MDK5
  • 四、STM32的FW补丁结构分析
  • 五、生态系统真的很重要

目录

章节介绍

1.单片机软件开发的时代变化
  本节介绍单片机的发展演进历史,和单片机开发方式的演进历史,在对比中让大家逐步意识到开发方式的变迁过程。
2.STM32软件开发的各种模式
  本节以STM32为目标讲解单片机软件开发的各种模式,在对比中让大家体会各种开发方式的好坏和差异,理解为什么后面的开发方式要更有优势。
3.STM32CubeMX工具入门与MDK5
  本节讲述STM32CubeMX工具的安装和补丁安装,基本使用方法等。
  MDK5做系统讲解和补充讲解,目的是让大家对MDK5的使用和一些小细节更加熟悉
4.STM32的FW补丁结构分析
  本节详细讲解STM32的FirmWare补丁的内容和结构,HAL库就在这里面
5.生态系统真的很重要
  本节是对本课程的总结,从商业和软件开发这2个角度去讲生态系统的重要性。本节内容格局较高,好好体会对自己绝对受益无穷。

一、单片机软件开发的时代变化

1.1、单片机开发的演进过程
(1)第1代:不讨论,没意义
(2)第2代:汇编和C都有,一般没有库或最多用标准C库
(3)第3代:出现单片机厂商提供的外设库,典型的如STM32的标准库
(4)第4代:库是标配和发展方向,库考虑更多硬件兼容性,库集成更多组件,库面向网络功能
(5)第5代:库面向云端对接、库面向上层语言如python的接口、提供辅助工具如STM32CubeMX

1.2、演进的内在动力和原因、方向
(1)单片机片上资源越来越多,越来越复杂,单片机编程的工程体量越来越大、复杂度和细节越来越多。因此必须要外设库来简化和加速开发。
(2)单片机型号越来越多,外设分布越来越散,引脚复用越来越多,需要专用配置工具协助工程师来设计引脚复用和基本功能配置,简化开发、快速评估。
(3)联网、USB、文件系统、加密算法、RTOS等第三方组件越来越重要
(4)物联网云管端模型,促进了单片机对联网对接的需求

1.3、演进的技术方向
(1)单片机开发在走PC、手机等以CPU为核心的产品的老路:底层和细节越来越成熟,ARM提供CPU的库、单片机厂商提供外设库,单片机软件工程师直接基于这些库来构建自己的应用。
(2)提供GUI式的辅助开发工具,加速并简化产品开发
(3)提供一整套开发生态而不只是一个SDK包
(4)提供HAL抽象层驱动来加速产品移植和选型,增加客户粘度。

二、STM32软件开发的各种模式

2.1、STM32开发的模式演进
第1代:寄存器开发
第2代:标准库开发
第3代:HAL/LL库 + STM32CubeMX工具开发

2.2、HAL与CubeMX
(1)HAL(hardware abstract layer)、LL(lowerlevel layer)
(2)HAL库的优势是便于在不同型号的STM32芯片之间移植,劣势是代码效率低
(3)LL库几乎等同于直接操作寄存器
(4)CubeMX工具是ST的一站式开发包,层级高于SDK包,包含了STM32芯片开发的所有官方资源,提供了友好的使用方法;CubeMX是一个windows上的IDE软件;CubeMX是一个工具包加芯片容器,各系列芯片资料以插件补丁形式安装;
(4)HAL/LL库和CubeMX本质上是独立的东西,只是使用上纠缠在一起了而已。
(5)CubeMX和Keil MDK是不同作用的东西,要搞清楚。

2.3、如何学习
(1)拥抱变化,站在时代前沿。固守成规是最愚蠢的。
(2)换汤不换药,本质从未变过,变得只是表面。
(3)积极学习并使用新东西,好好利用新工具,但不要丢掉老知识和技能。

三、 STM32CubeMX工具入门与MDK5

3.1、STM32CubeMX软件下载和安装
(1)在http://www.stmicroelectronics.com.cn/ 首页搜索STM32CubeMX即可找到下载页
(2)分STM8版本和STM32版本
(3)尽量安装最新版,可以打开旧版本创建的工程;反之不可以。

3.2、MCU系列的firmware补丁包下载安装
(1)安装包搜STM32Cube也能搜到
(2)可以在CubeMX工具中在线下载安装,但是实际感觉不好用
(3)推荐到STM32官网下载离线包,然后本地导入

MDK5最新版本软件下载:http://www2.keil.com/mdk5
MDK的pack下载路径:https://www.keil.com/pack

3.3、MDK5使用的一些细节
(1)工程建立和输出文件夹设计 (不需要自己新建文件)
(2)C/C++栏下的预定义宏
(3)C/C++栏下的头文件包含设计
(4)use microlib (串口通信
(5)选择合适的MCU型号
(6)debug中选择合适的调试器
(7)MCU中flash的下载算法设置

3.4、其他几种STM32开发的IDE
(1)IAR EWARM
(2)RVDS/ADS1.2
(3)gcc
(4)TrueStudio
(5)MDK4

四、STM32的FW补丁结构分析

4.1、整体情况
(1)每个系列(如L4、F1)是一个整体的补丁包
(2)每个系列都有不同的版本号,而且会不断升级
(3)可以在STM32CubeMX工具中在线升级安装,也可以到官网下载然后本地import
(4)所谓安装其实就是解压开放到了一个位置中 (C盘-用户-个人用户-stm32cube中)

4.2、FW各文件夹内容浏览

五、生态系统真的很重要

5.1、从小米的物联网生态说起
(1)商业上小米是比较早构建生态的,事实证明很成功
(2)生态系统的本质是资源的更合理、更低成本、更快速配置
(3)信息化让商业生态重要性更高

5.2、软件开发行业也是生态为王
(1)Wintel时代围绕微软Windows和Office的PC软件生态帝国
(2)iOS的内聚生态成就了苹果的优秀和成功
(3)android的开放生态主宰了当前的移动互联网时代,并将继续主宰

5.3、单片机开发领域生态
(2)ARM在CPU内核方面是目前霸主,但是也有RISC-V等在挑战
(3)开发环境方面MDK、IAR、gcc、DS等都有人用
(4)芯片方面STM32前几年积累的优势很大(尤其国内),STM32的开发生态也做的很好;但是TI、freescale、瑞萨、Atmel等其他厂商也有各自一定优势
(5)RTOS方面ucos、freertos、liteos、rtthread
(6)云方面国内阿里云、华为云,国外amazon、google等也有很多
(7)无线通信领域WIFI、nbiot、Lora、4G等多种方式

5.4、STM32生态系统
STM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单
STM32Cube生态系统包括两大部分PC软件工具(STM32CubeMX)和软件库(mcu packages)
STM32生态系统文章:
超链接:STM32强大的生态
超链接:初识 STM32Cube生态系统

5.5、看法
(1)开发生态的本质是让开发更快速、更简单、更直达目标、更低成本
(2)开发者的个人价值和发展和开发生态的价值和发展并不完全重合,甚至有时候还矛盾冲突
(3)建议1:回归本质,打好根基、练好内功,以不变应万变
(4)建议2:积极拥抱变化,学习新技术、新开发方式、新语言、努力跟上时代
(5)单片机开发的未来在于:低功耗、联网连云、RTOS、安全和加密等方向点

注:本资料大部分由朱老师物联网大讲堂课程笔记整理而来

【STM32的Cube和HAL生态】相关推荐

  1. stm32直流电机PID控制hal库(Cubemx)

    stm32直流电机PID控制hal库(Cubemx),一步步手把手教你怎么配置cubemx怎么写代码. 未对pid就行深入解析,不过相信您通过配置和写代码以后大概可以知道pid的主要作用. 文章目录 ...

  2. 《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.9 TIM---输入捕获(脉冲频率测量)实验

    写在前面-- <STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>第四章4.9 TIM-输入捕获(脉冲频率测量)实验,讲解TIM输入捕获的原 ...

  3. 《STM32单片机开发应用教程(HAL库版)---基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第二章 软件安装与使用

    写在前面-- 作为<STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>系列之第二章,本章节将介绍开发软件STM32CubeMX和KEIL5的 ...

  4. STM32实战总结:HAL之GUI

    在TFT上简单的显示字符.数字.汉字.图形.图片等,都是一些简单的显示.如果想要进行较为复杂的显示,就推荐使用GUI. 市面上常见的嵌入式GUI有LVGL,emWin(ucGUI),TouchGFX, ...

  5. STM32实战总结:HAL之电机

    电机基础知识参考: 51单片机外设篇:电机_路溪非溪的博客-CSDN博客 无刷电机和有刷电机 先详细了解有刷电机: 带你了解(有刷)电机工作原理_哔哩哔哩_bilibili 再详细了解无刷电机: 无刷 ...

  6. 【STM32】STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲

    [STM32]STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲 一.前言 二.时钟是什么 三.时钟树 1.时钟树图 2.时钟树讲解 左边部分 中间部分 右边部分 特殊部分 四.初始化 ...

  7. 《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.3 按键控制实验

    写在前面-- <STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>第四章4.3 按键控制实验,讲述按键控制的编程方法 官方例程下载:http ...

  8. 《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.1 LED显示控制实验

    写在前面-- <STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>第四章4.1,本节将通过LED显示控制实验,学习STM32G431的开发技 ...

  9. 【STM32】STM32标准库与HAL库对照学习教程一--使用寄存器操控LED闪烁详讲

    [STM32]STM32标准库与HAL库对照学习教程一--使用寄存器操控LED闪烁详讲 前言 本教程文章是我在学习STM32标准库和HAL库后写的,想通过标准库与HAL库的对照学习加强我对STM32的 ...

最新文章

  1. 安装已停止,原因是 ProjectType 值的目录不存在。对于您所安装的 Visual St...
  2. 2016年,我的和自己谈谈
  3. cuSPARSE库:(七)cusparseCreate()的功能与作用
  4. (摘)老司机也必须掌握的MySQL优化指南
  5. java冒泡排序菜鸟教程_排序算法总结 | 菜鸟教程
  6. php exeil导入,反编译工具ILSpy.exe
  7. arm9处理器 java_ARM处理器系列介绍
  8. 8、Ndk开发小记一
  9. android开发学习计划
  10. 学习光线跟踪一样的自3D表征Ego3RT
  11. java发送lrc文件格式_java中用正則表達式解析LRC文件
  12. Hexo修改鼠标样式
  13. 抓取微博热搜榜数据并保存在Excel中
  14. 谷露专访伯周咨询创始人Tiger Pan:在退潮后蜕变
  15. Jump gameII
  16. 如何记录COGI中删除的记录
  17. linux设置共享文件夹和删除共享文件夹(vmware:linux-windows共享文件夹)
  18. 湖北公安机关出台10条措施服务民营经济发展
  19. html5+在线录音,html5在线录音示例源码(MediaStream Recording API)
  20. DDD—分层架构、洋葱架构、六边形架构

热门文章

  1. 前端学习从入门到高级全程记录之46 (ajax---2)
  2. c++编译 (.obj, .lib, .dll, .exe的关系(附:lib和DLL的区别))
  3. 职场压力到底能不能压死人
  4. Pearson相关系数矩阵解释
  5. web进阶任务之备忘录
  6. Win10 Jupyter notebook 闪退无法打开解决方案
  7. 如何备份Github博客至GitCafe
  8. bash permission denied
  9. opencv透视变换
  10. 什么是敏捷开发和瀑布开发