STM32系列 (一)开发环境的搭建

article/2025/10/25 15:59:40

STM32简介

        STM32是意法半导体(ST)推出一款32位的单片机。STM32具有超低的价格、超多的外设、丰富的型号、优异的实时性、极低的开发成本等优势。STM32凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多32位单片机中脱颖而出

        STM32芯片内部可以粗略划分两部分:内核+片上外设。如果与电脑类比,内核与片上外设就如同电脑的CPU与主板、内存、显卡、硬盘的关系。
ARM公司只设计内核不生产芯片,他会将有关内核的技术授权给各半导体厂商例如ST、TI、Atme1、NXP等厂商。这些厂商都是基于这个内核自己设计片上外设如SRAM、ROM、FLASH、USART、GPIO等,然后集成到一个硅片上,这就是我们现在用的芯片。
芯片内部架构见图:
        

        芯片内部内核和外设分别是两个公司设计的,那他们该怎么联系到一起协同高效的工作呢?答案就是总线,学过计算机组成原理的同学都应该知道计算机五大组成部分运算器、控制器、存储器、输入设备、输出设备他们之间的通信就是通过总线。我们上面也说了单片机就是一个集成在硅片上的计算机,所以他内部的连接关系也是靠总线。
STM32内部一共有11条总线:

        我们知道,在嵌入式开发中,比如51和Arduino,我们写程序烧入芯片就可以实现控制。那么我们写的程序怎么就能控制我们的单片机工作呢或者程序在控制什么东西呢?
那个东西就是寄存器,其实不管我们用库开发还是寄存器开发我们本质上就是在控制寄存器上的每个位的通断,并且这些寄存器都有其特定的功能。换句话说每个外设(如GPI0、USART、I2C、SPI.…)都对应有寄存器来对他控制。

所以STM32可以用寄存器开发也可以用库开发。
 

 

STM的选型

STM32是ST的所有产品的统称,ST有两大家族STM8和STM32。STM8主要针对于低成本,对主频要求比较低、运算速度要求不是很高的低端市场。STM32主要应用于项目对主频要求较高、运算速度比较快、实时性好的中高端市场。STM32有很多产品大致划分可分为主流MCU、高性能MCU、低功耗MCU。其中主流MCU如STM32F1系列、高性能MCU如STM32F4、STM32F7系列、低功耗MCU如STM32L0系列。并且每个系列产品下面还会根据闪存容量、外设数量、封装大小分为很多种类并且价格也是差别很大。

STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:

 

我手上的是正点原子的一款开发板,芯片用的是STM32F103ZET6

 芯片说明书如下:

 

 

 

编写程序

先下载keil软件(官网下载MDK5的安装包):

注意:

 

MDK5安装¶

MDK5的安装比较简单。首先从官网上下载MDK5的安装包,下载前需要先填写相关个人信息:

然后双击下载后的安装包,开始安装:

 

 

 勾选同意选择框,点击下一步:

 

选择安装路径,这包括选择MDK核心组件(Core)的安装路径和外设包(Pack)的安装路径,一般只用选择 Core 的安装路径,Pack 的路径会自动设置为 Core 路径下的ARM/PACK

 

点击下一步,等待进度条走完即可:

 

安装完成后,会自动弹出 Pack Installer 界面,如果没有的话可以打开安装好的 Keil uVision5 软件,在工具栏上找到 Pack Installer 的图标,然后点击进入:

 

 打开 Pack Installer 界面后如下图所示:

 由于我们使用的STM32型号为 STM32F103TBU6,还需要安装开发所需要的器件支持包(Device Family Pack, i.e. DFP),所以展开STM系列产品的菜单栏:

 

 点击右边红色圆圈选中的三个组件,Pack Installer 会自动从网上下载最新版本的组件,下载进度在 Pack Installer 底部状态栏显示:

 

        这时候我们的MDK5就下载好了,接下来我们要下载STM32CubeMX,其实用MDK5已经可以来编写STM32的代码了,倒是接下来我们的教程将会使用STM32CubeMX进行解析,因为在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等  省去了我们配置各种外设的时间,大大的节省了时间。

安装CubeMx一共需要三步

  •  JRE (Java Runtime Environment)  Java运行环境 运行JAVA程序所必须的环境的集合
  •  STM32CubeMX
  • HAL库   STM32 HAL固件库   ST官方推出的另一套库。

1安装JRE

由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用,   记得选择64位的安装

官网:  https://www.java.com/en/download/manual.jsp

BD云: https://pan.baidu.com/s/1rI_XrM2SAw-6Jbvj75SWpg?pwd=hwk7 提取: hwk7 

新lian接:

BD云: https://pan.baidu.com/s/1rj56i9HS4UAaE9yEaiIsaA?pwd=ack6 提取: ack6 

1点击安装

2 修改路径 点下一步

3 等待安装完成,关闭界面

2安装STM32CubeMX

 官网:www.st.com/stm32cubemx

官网下载:

在官网下载需要注册下ST官网账号,目前最新为5.3.0版本。

1打开安装包 

 

 2同意协议,下一步

 3 勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使用信息等。

 

4 点YES  这句话是安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失 是否继续 

点继续即可

 5 直接点NEXT,其他不用设置 之后开始安装

 6 安装完成,点Done退出

 

3安装HAL库

什么是HAL固件库?

STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。

和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。

并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境;

HAL库,有在线安装、离线安装两种方式。

在线安装

打开安装好的 STM32CubeMX 软件  点上面的Help -> Manage embedded software packages 

 会跳出来一个选择型号界面   勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:

 到此,你的STM32 CubeMx安装成功了。

 

 

 


http://chatgpt.dhexx.cn/article/x84v6dxh.shtml

相关文章

STM32几种流行开发环境的优缺点

有很多初学者在问:学习STM32,该用哪款开发工具? 我首先说一下我的观点: 1.没有最好,只有适不适合,适合自己的才是最好的。 2.开发工具很多,各有各的特点,有优点肯定也有缺点。 今…

STM32入门指南(0)—配置开发环境

STM32入门指南(0)—配置开发环境 文章目录 STM32入门指南(0)—配置开发环境开发环境介绍STM32CubeMX下载安装安装Java安装STM32CubeMX安装软件开发包 Keil uVision5下载安装解锁更多内容 开发环境介绍 这一系列的教程使用的都是 …

用html和CSS做个人简历

很多刚学web的同学第一个项目应该都是做一个个人简历,这个是查了多方资料的刚刚写出来的一个简历,所以可能会参考网上的一些代码,兄弟们拿去复制就可以。里面有的注释可能不太对劲,不要太在意,毕竟我也是一个刚学一周的…

简历模板推荐

简历模板推荐 话不多说,直接上干货。 今天给大家推荐几个还不错的简历模板网站。 木及简历(推荐👍) : 免费MarkDown在线简历-专业简历制作工具-木及简历 。 知页简历:名企精英都在用的专业简历 typorama…

HTML5,CSS制作个人简历

先建立index页面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>个人简历制作</title> …

HTML5+CSS——个人在线简历

期末作品用DW软件结合HTML和css来制作一个在线简历&#xff0c;成果图如下&#xff1a; HTML代码如下&#xff1a;主要使用表格来实现页面布局&#xff0c;页面中使用了文本溢出隐藏效果、点击相应的链接可以跳转到另一个网页等。 <!DOCTYPE html> <html> <hea…

HTML5个人简历模板制作

个人简历模板 几个主要属性值 rowspan 跨行数 width 宽度 cellpadding 内容与单元格之间的距离 cellspacing 单元格与单元格之间的距离 align 表格在文档中的对齐方式&#xff08;left center right&#xff09; 实现代码如下 在这里插入代码片 <!DOCTYPE html> <…

html+css的响应式个人简历

响应式个人简历 文章目录 响应式个人简历目录一、运行截图二、html代码三、CSS代码四、总结 目录 包括主页、关于我、个人技能、联系我四个页面&#xff0c;整个页面可以根据窗口大小调整。 一、运行截图 二、html代码 代码如下&#xff1a; <!DOCTYPE html> <html l…

个人简历需要写什么内容?简历模板的基本内容有哪些

很多人认为&#xff0c;个人简历应该做成形式多样颜色丰富设计十足的&#xff0c;而实际上HR对你感兴趣的并不是你的简历样式&#xff0c;而是你的简历内容。个人简历模板内容要怎么写呢&#xff1f;一份标准的简历表格基本内容有哪些呢&#xff1f;下面脚步网就来给大家介绍一…

CSS+html制作简历表

CSS格式 CSS样式的语法&#xff1a; css选择器{ 样式属性1:属性值&#xff1b; 样式属性2:属性值;. …} css选择器&#xff1a; 用于定位需要施加某些样式的某个或某一些标签&#xff0c;有ID选择器&#xff0c;class选择器&#xff0c;标签选择器等常用选择器可供选择使用。 …

用HTML和CSS编辑的简历模板

1. 工具&#xff1a; sublime或者EditPlus、任意浏览器 2. 代码文件 点击提取 密码: 5ee7 3. 效果

怎样用HTML做一份精美的简历(html5+css)

先来看一下效果图&#xff1a; 代码&#xff1a;index.html <!DOCTYPE html> <html> <head><title>简历二</title><meta charset"utf-8"><link rel"stylesheet" type"text/css" href"../css/mysty…

HTML+CSS实例:简单朴素的个人简历模板(HTML表格使用+css样式渲染)

个人简历模板 丑是丑了点&#xff0c;没有那么花里胡哨。。。 先看展示 代码实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"&g…

html+css个人简历/网页界面

代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>个人简历</title><link rel"stylesheet" href"css/li.css" /></head><body><div class"q&q…

2022最新简历模板

一份好的简历&#xff0c;要的不是花里胡哨&#xff0c;要的是简洁和内容相结合&#xff0c;这样的简历才是优秀的。 而且在排版设计上要适合HR快速阅读&#xff0c;用词、结构要专业。这样的简历模板&#xff0c;才是你需要的&#xff01; 下面我要分享几个免费高质量简历模…

设计模式--【模板模式】

在模板模式&#xff08;Template Pattern&#xff09;中&#xff0c;一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图&#xff1a;定义一个操作中…

模板模式(设计模式)

模板模式 在模板模式(Template Pattern)中&#xff0c;一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 1.介绍 意图&#xff1a;定义一个操作中的算法的骨架…

【JavaSE】Java设计模式详解(二)抽象模板模式

&#x1f481; 个人主页&#xff1a;Nezuko627的博客主页 ❤️ 支持我&#xff1a;&#x1f44d; 点赞 &#x1f337; 收藏 &#x1f918;关注 &#x1f38f; 格言&#xff1a;立志做一个有思想的程序员 &#x1f31f; &#x1f4eb; 作者介绍&#xff1a;本人本科软件工程在读…

设计模式之模板设计模式

设计模式之模板设计模式 代码下载 1.概念 定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中。Template Method使得子类可以不改变一 个算法的结构即可重定义该算法的某些特定步骤。 2.类图 代码下载

10.7 抽象类最佳实践-模板设计模式

10.7.1 基本介绍 10.7.2 模板设计模式能解决的问题 10.7.3 最佳实践 abstract public class Template { //抽象类-模板设计模式 public abstract void job();//抽象方法 public void calculateTime() { //实现方法&#xff0c;调用 job 方法 //得到开始的时间 long start …