STM32的相关简单介绍

news2024/12/24 2:25:43

一、什么是STM32

STM32是ST公司设计的一系列ARM Cortex-M为核心的32位微控制器

ST公司,即意法半导体集团(STMicrolectronics,简称ST),1987年成立·。由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。

 在当下的32位微控制器中,STM32在工程师和市场中崭露头角,深受喜爱。

二、基于ARM Cortex内核的32位MCU和MPU

 在上图,我们可以看见当下基于ARM Coertex内核的32位的MCU和MPU。之后我将使用Cortex-M3系列的STM32F1xx进行开发学习。

图中所示STM32芯片型号的含义在后续会详细说明。

三、STM32的应用场景

STM32在生活中应用广泛,主要分布在物联网、工业自动化、汽车和消费电子以及医疗设备等领域。

STM32因其灵活性和强大的处理能力在市面上深受大众青睐

四、STM32系列MCU的命名规范

本次学习使用的STM32芯片是STM32F103ZET6,实物图如下

前面介绍了,STM32是一系列基于ARM架构的32位微控制器,既然是一系列,那么就说明有很多种。那么如何去对他们进行命名,有什么规则,不同芯片的型号中各个字符都代表什么含义呢?

请看下图,关于STM32、SM8的产品型号含义图表

 由图可知,各个部分都有不同的含义,一个STM32系列的MCU芯片型号主要由 家族+类别+功能+引脚数+闪存容量+封装方式+温度范围 构成。

关于图中封装部分的各个含义,可自行去查,这里就不在过多赘述。其中本次使用的QFP封装含义是四侧片平引脚封装,由上面的芯片实物图也一目了然。

对于此次使用的STM32F103ZET6型号芯片,根据上图可知(已用绿色方框标注),即 基础型144引脚512kb闪存四侧扁平引脚封装温度范围-40~+85℃的STM32芯片

 五、STM32的开发方式

STM32当下的开发方式主要有三种,即基于寄存器开发、基于标准库开发和基于HAL库开发。

他们各自有各自的优缺点,总结图如下

1、基于寄存器开发

基于寄存器开发需要深入硬件底层,有利于初学者学习STM效率更高,代码执行效率高,但开发起来难度较大基于初学者的学习需要,本次将会使用基于寄存器的开发方式

 2、基于标准库开发(本次不用

基于标准库开发,即所有底层的一些功能模块都用相应的库进行封装,更加通用于不同的STM32的开发,代码移植更容易。但同时会屏蔽一些硬件信息,不利于初学者学习,且ST公式已经停止对标准库的更新,不利于后续新产品的开发。 

3、基于HAL库开发

 HAL库是ST公式主推的STM32开发方式,且开发工具持续更新,力度大。相比于寄存器和标准库都具有更高的开发效率,移植更加容易。只不过这样也很不利于新手学习知识。

4、最终的选择

基于上述情况,本次STM32学习将同时基于寄存器开发和HAL库的开发

一方面,选择基于寄存器开发更有利于初学者深入学习STM32知识;另一方面,选择基于HAL库的开发更有利于我们快速上手STM32的开发,提高开发效率

基于以上两点,取其精华去其糟粕,实现双管齐下的效果。不过需要注意的是,学习难度可能相对较大,需要努力坚持。

六、STM32的开发工具

当前,STN32的开发工具主要有keil MDK、IAR、STM32CubeIDE以及近年来的工具新星Clion。其中,前两个是国内老牌的主流的STM32开发工具,同样也是各有优缺点。

1、Keil MDK(收费)

 目前国内主流单片机开发工具,历史悠久,调试功能强大,网上资料多

 通用IDE,兼容市面上大部分单片机

 由于偏向硬件开发,软件方面做的较弱,代码编辑能力弱、联想功能较差

尽管收费,但咱也有机会免费使用这款工具进行STM32开发。

2、IAR(收费)

目前国内主流STM32开发工具

兼容大多数单片机

代码编辑能力弱

3、STM32CubeIDE(免费)

ST官方推出,STM32开发友好

基于Eclipse工具链,界面现代化

仅限STM32,不支持其他单片机

相对Keil更耗电脑CPU资源

后期基于HAL库将会使用到

4、Clion(收费)

Jetbrains系列IDE,他家做过JAVA、python等IDE,非常好用

但近年来才推出的STM32开发工具,需要插件,网上资料较少,尚不完善

目前使用的人不这么多

5、最终选择

之后的学习期间,我主要使用Keil,且还会配合vscode进行开发,其中

Keil  --  编译下载调试

VScode  --  编码

在进行HAL库的学习时,还会用到STM32CubeMX,进行图形化配置。

后续将频繁使用到Keil MDK,所以这里先放个下载地址。

Keil MDK的官方下载地址:点击此处进入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统主机加固的十个方法,教你做好主机加固

环境背景 随着全球数字化转型的加速,企业IT环境变得愈发复杂,服务器主机面临的安全威胁也日益多样化。无论是工业控制系统、企业内部网络、企业内部服务器,还是云计算环境,都可能成为网络攻击的目标。此外,随着“工业…

重构版:链动3+1创新裂变模式解析

链动31模式,作为一种创新的市场扩张策略,专注于通过产品的独特魅力驱动用户自主传播与裂变。与传统的链动21模式相比,它在结构上进行了重大革新,不再局限于传统的太阳线裂变方式,而是引入了四四复制的架构,…

【Python零基础】while循环和用户输入

文章目录 前言一、input()函数二、while循环三、使用while循环来处理列表和字典总结 前言 我们开发一个应用程序,目的都是为了解决最终用户的问题,针对用户界面输入的数据,按照用户期待的逻辑进行处理,得到用户想要的结果。本章将…

如何查看Squid的DNS缓存

使用squidclient mgr:ipcache命令查看Squid的DNS缓存记录 如果squid端口不是3128, 需要指定端口号, squidclient -p {port} mgr:ipcache # squidclient mgr:ipcache ... IP Cache Statistics: ... IP Cache Contents:Hostname Flg lstref TTL N(b)…

【排序算法】八大排序(上)(c语言实现)(附源码)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:算法 目录 前言 写一串测试数据 交换两元素的函数 一、冒泡排序 二、选择排序 三、插入排序 四、希尔排序 程序全部代码 总结 前言 排序算法是计算机科…

【pwnable.kr】0x01-fd Writeup

题目描述 解法 Ubuntu连接靶机&#xff08;连不通的可以试一下proxychains&#xff09; ssh fdpwnable.kr -p2222scp命令拷贝下fd源码文件 scp -P2222 fdpwnable.kr:fd.c .查看源码 #include <stdio.h> #include <stdlib.h> #include <string.h> char bu…

解决k8s分布式集群,子节点加入到主节点失败的问题

1.问题情况 Master主节点在 使用 kubeadm init 成功进行初始化后&#xff0c;如下所示 Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/k…

spring全面详解-最全最详细的spring基本认识和入门使用

文章目录 Springspring概述1 Spring定义2 Spring核心3 Spring Framework的特点 入门案例1 环境要求2 构建工程2.1 构建子工程first-spring2.2 入门案例2.3 对象存储 IoC容器1 控制反转IoC2 依赖注入DI3 IoC容器实现4 基于XML管理bean4.1 环境准备4.2 获取bean方式4.3 基于sette…

【微信小程序】自定义组件 - behaviors

1. 什么是 behaviors 2. behaviors 的工作方式 3. 创建 behavior 调用 Behavior(Object object) 方法即可创建一个共享的 behavior 实例对象&#xff0c;供所有的组件使用&#xff1a; 4. 导入并使用 behavior 5. behavior 中所有可用的节点 6. 同名字段的覆盖和组合规则* 关…

C++学习笔记----4、用C++进行程序设计(一)---- 什么是面向对象的程序设计

也许你看到这个题目的时候&#xff0c;就觉得这篇博文不用看了&#xff0c;难道这就是题目劝退了观众。我看到过一些程序&#xff0c;是由面向过程的传统程序修改过来了&#xff0c;只是将原来的函数变成了类的成员函数&#xff0c;其他几乎没有什么变化&#xff0c;可以说是换…

使用一致性哈希解决哈希分片负载均衡的扩展性问题

声明&#xff1a;本文的图全部源于&#xff1a;小林coding 上来咱先说&#xff0c;一致性哈希是应对分布式系统的算法 假设有一个负载均衡问题&#xff0c;也就是大批流量来请求&#xff0c;那怎么分配这些流量&#xff1f; 随机&#xff1f;还是挨个轮询&#xff1f; 这都…

文心快码帮你解大厂面试题:在给定两个不定长的单向链表,如何实现两个链表的加和?

【大厂面试真题】系列&#xff0c;带你攻克大厂面试真题&#xff0c;秒变offer收割机&#xff01; ❓今日问题&#xff1a;Java G1 GC中&#xff0c;region是什么意思&#xff1f;有哪些不同的region类型&#xff1f; ❤️一起看看文心快码Baidu Comate给出的答案吧&#xff01…

java 重新认识重载与重写

一、概念 1、重载&#xff08;Overloading&#xff09;: 是指在同一个类中&#xff0c;可以有多个同名方法&#xff0c;但这些方法的参数类型、参数个数、参数顺序至少有一个不同。返回类型可以相同也可以不同。每个重载的方法都需要有一个独特的参数类型列表。 2、 重写&#…

35岁被裁员,难道是程序员的结局吗?

声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/2179.html 作为一名35岁的Java工程师&#xff0c;技术更新快得就像坐火箭一样&#xff0c;咱们的技术可能一不留神就落伍了。再加上年纪大了&#xff0c;体力可能跟不上挑…

AMD加大资金布局,全力追赶英伟达

AMD正在加紧布局&#xff0c;以缩小与AI芯片领域领军者英伟达的差距。随着AI技术的飞速发展&#xff0c;AMD近日宣布了一笔重磅收购计划&#xff0c;这家芯片巨头正加速进入AI硬件市场&#xff0c;希望通过此次收购进一步扩大市场份额。 49亿美元收购ZT Systems 本周&#xff…

CUDA-MODE课程笔记 第7课: Quantization Cuda vs Triton

我的课程笔记&#xff0c;欢迎关注&#xff1a;https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/cuda-mode CUDA-MODE课程笔记 第7课: Quantization Cuda vs Triton 适配课件详细解读 作者课件可以在这里找到&#xff1a;https://github.com/cuda-mode/l…

前端宝典十:webpack性能优化最佳实践

Webpack 内置了很多功能。 通常你可用如下经验去判断如何配置 Webpack&#xff1a; 想让源文件加入到构建流程中去被 Webpack 控制&#xff0c;配置 entry&#xff1b;想自定义输出文件的位置和名称&#xff0c;配置 output&#xff1b;想自定义寻找依赖模块时的策略&#xff…

上门预约O2O系统源码开发

随着互联网技术的飞速发展&#xff0c;O2O&#xff08;Online To Offline&#xff09;模式已成为连接线上与线下的重要桥梁&#xff0c;尤其在同城服务领域展现出了巨大的潜力。上门预约服务作为O2O模式的一种典型应用&#xff0c;正逐渐改变着人们的生活方式。 一、O2O模式概述…

Spring Boot发送邮件带附件功能怎么实现?

SpringBoot发送邮件带附件的步骤&#xff1f;如何优化Spring性能&#xff1f; 发送电子邮件是一个常见的需求&#xff0c;而随着业务需求的增加&#xff0c;发送带有附件的邮件变得尤为重要。AokSend将探讨如何在Spring Boot中实现发送邮件并附加文件的功能。 Spring Boot发送…

使用SSMS连接和查询 SQL Server 实例

简介 SQL Server Management Studio 是用于管理SQL Server基础架构的集成环境。Management Studio提供用于配置、监视和管理SQL Server实例的工具。 此外&#xff0c;它还提供了用于部署、监视和升级数据层组件(如应用程序使用的数据库和数据仓库)的工具以生成查询和脚本。 官方…