如何利用STM32CubeMX来自动生成STM32代码?

乐创客 2020-12-20 00:00


文/Edward


众所周知,ARM Cortex M系列是ARM专门为单片机设计的内核。其中,STM32系列的芯片可以算得上最成功的ARM Cortex M系列的芯片了。在最早期,ARM Cortex M系列的核心刚用在单片机设计的时候,同时期也有很多厂商推出ARM Cortex M核心的单片机,但为什么STM32会如此之普及?其中的缘由,离不开当时意法半导体推出的方便的固件库。

为什么区区一个STM32的固件库可以有这么大的作用?这是因为早在8位机和16位机的时代,单片机内部的每一个外设的寄存器数量是有限的,我们即使一个一个去配置也没有多少工作量。但是ARM Cortex M核心,操作外设时需要配置的寄存器有很多,这样使用起来就会很麻烦。而意法半导体的固件库则可以将这些操作变得简单。


   STD库和HAL库之分

最早意法半导体推出的适配STM32的固件库被称为“STD库”(标准库),我们用的最多的“STD库”要属适配在STM32F1上面的“STM32F10x_StdPeriph_Lib_V3.5.0”,这个3.5版本的固件库到现在为止还是开发STM32F1系列单片机的首选。

同时期的STM32系列还包括了F0,F1,F3,F4,L1等子系列芯片,并且都为它们适配了“STD库”。如图1所示。


图1 STD固件库的适配系列


大约到2014年左右,ST在标准库的基础上又推出了HAL库。实际上,HAL库和标准库本质上是一样的,都是提供底层硬件操作API,而且在使用上也是大同小异。有过标准库基础的同学对 HAL库的使用也很容易入手。个人认为ST官方之所以这几年大力推广HAL库,是因为HAL的结构更加容易整合STM32Cube,而STM32CubeMX是ST这几年极力推荐的程序生成开发工具。所以这两年新出的 STM32芯片,ST直接只提供HAL库。在新型的 STM32 芯片中,用HAL库逐步淘汰标准库。

目前STM32所有的芯片都适配了HAL库。如同2所示。


图2 HAL库的适配系列


很多人从STD库转来做HAL库可能一开始觉得不习惯,但是配置起来其实和STD库也差不多。比较有意思的是,其实HAL库的代码可以直接使用STM32CubeMX这个软件来生成,STM32CubeMX的操作方式非常简单,下面的内容就来介绍一些这个软件。


   STM32CubeMX安装

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

STM32CubeMX的功能功能框图如图3所示。从图3中可以看得出,它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。


图3 STM32CubeMX简介


STM32CubeMX的特性如下:

(1)直观的选择 STM32 微控制器。

(2)图形化配置单片机:

   引脚状态显示

   图形化配置时钟树

   可以动态确定参数设置的外围和中间件模式和初始化

   功耗预测

(3)STM32CubeMX可以自动生成主流IDE的工程代码,支持的IDE,如IAR、KEIL、GCC。

(4)可独立使用或作为 Eclipse 插件使用。


STM32CubeMX是ST意法半导体的主动原创工具,它可以减轻开发的时间和费用。STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。


STM32CubeMX软件是运行于JRE上面的软件,因此我们在安装STM32CubeMX这个软件之前,现需要安装JRE。我们可以通过ST官网直接下载,JRE也可以从Oracle官网上面下载,当然也可以通过如下的链接,或者扫描图4中的二维码。

链接:https://pan.baidu.com/s/1fSGZ5J6u0fpBsaRDUZjAzg

提取码:qvrh


图4 STM32CubeMX和JRE下载网盘二维码


安装步骤为:

(1)  安装“jre-8u271-windows-x64”,直接默认安装即可,如图5所示。
图5 安装JRE

注意,如果JRE没有安装成功,则会弹出如图6所示的警告。
图6 未安装JRE弹出警告

(2) 解压“en.stm32cubemx_v6-1-0.zip”压缩文件,打开“en.stm32cubemx_v6-1-0”文件夹,然后双击运行“SetupSTM32CubeMX-6.1.0.exe”文件。接着直接勾选必要的选项,然后无脑点击下一步即可,如图7所示。
图7 stm32cubemx安装步骤

到此为止,stm32cubemx软件就安装完成了,我们可以在桌面上看到stm32cubemx软件的快捷方式。如图8所示。
图8 stm32cubemx快捷方式


   STM32CubeMX使用步骤
(1)双击打开“stm32cubemx”软件,我们就可以看到图9中显示的界面了。
图9 STM32CubeMX启动界面

(2)点击“File”->“New Project”用来创建一个新的工程,如图10所示。
图10 创建新工程

注意,如果出现了图10中间的数据下载提示,并且长时间没有下载完成时,可以点击“Cancel”去取消本次下载,不会产生影响。

(3)接下来我们就可以在这个界面上面选择芯片了,如图11所示,我们例子中选择了“STM32F429NG”,选择好芯片之后,点击“Start Project”。
图11 器件选择

(4)点击了“Start Project”之后,就会弹出如图12所示的界面,到此为止,我们就可以正式配置这个芯片的资源了。
图12 配置功能区域划分

这个软件整体配置流程比较傻瓜,操作起来很方便,这里就不详细阐述了。

(5)配置好工程之后,就可以导出代码了,点击右上方的“GENERATE CODE”即可生成代码,如果你第一次运行该软件,系统是会下载安装一些软件依赖包,只需要耐心等待安装完成即可。如图13所示。
图13 软件模型下载

(6)如果软件包下载完成,那么就会跳入代码生成选项界面,如图14所示。
图14 工程配置

(7)工程配置完成之后,再点击一下右上方的“GENERATE CODE”,即可产生最终的代码,我们代开代码文件夹就可以看到Keil的工程文件了,如图15所示。
图15 最终生成的Keil代码

STM32CubeMX是一款非常不错的软件,相信有它的支持,一定会大大降低STM32系列单片机的开发难度。



乐创客 我们从来不培养程序猿,我们只是嵌入式技术的搬运工
评论
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 111浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 84浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 212浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 48浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 160浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 56浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 102浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 51浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 140浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 115浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 195浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦