【STM32】入门教程(完整版汇总非常详细)

news2024/9/22 3:40:46

本教程参考b站江协科技STM32入门教程,视频链接:

哔哩哔哩江协科技STM32入门教程icon-default.png?t=N7T8https://www.bilibili.com/video/BV1th411z7sn/?spm_id_from=333.337.search-card.all.click

“唯一能持久的竞争优势是胜过竞争对手的学习能力。”——盖亚斯

希望对您有帮助。

笔记汇总 

STM32学习笔记01-综述-CSDN博客

STM32学习笔记02-GPIO-CSDN博客

STM32学习笔记03-EXTI外部中断-CSDN博客

STM32学习笔记04-TIM定时器-CSDN博客

STM32学习笔记05-ADC模数转换器-CSDN博客

STM32学习笔记06-DMA直接存储器存取-CSDN博客

STM32学习笔记07-USART串口通信-CSDN博客

STM32学习笔记08-I2C通信-CSDN博客

STM32学习笔记09-SPI通信-CSDN博客

STM32学习笔记10-RTC实时时钟-CSDN博客

STM32学习笔记11-PWR电源控制-CSDN博客

STM32学习笔记12-WDG看门狗-CSDN博客

STM32学习笔记13-FLASH闪存-CSDN博客

CAN总线详解-理论知识部分-CSDN博客

 接下来的内容纯属凑文章字数,不浪费读者时间,可看可不看。


STM32基本介绍

STM32 是意法半导体(STMicroelectronics)推出的一系列基于ARM Cortex-M 内核的32位微控制器。STM32 系列专为要求高性能、低成本、低功耗的嵌入式应用而设计,具有以下特点:
 
特点与优势:
 
1. 高性能:采用了 ARM Cortex-M 内核,例如 Cortex-M3、Cortex-M4 等,具有出色的处理性能和运行速度。
2. 丰富的外设:包括多个定时器、计数器、PWM 输出、ADC(模拟数字转换器)、DAC(数字模拟转换器)、通信接口(如 SPI、I2C、CAN、USART 等)等,可满足各种不同的应用需求。
3. 低功耗:采用了先进的低功耗技术,在不降低性能的情况下有效降低功耗,适合电池供电等对功耗敏感的设备。
4. 易于开发:意法半导体提供了丰富的软件和硬件开发工具,如 STM32CubeIDE 集成开发环境、STM32CubeMX 图形化配置工具以及 HAL 库(硬件抽象层)等,帮助开发者快速开发嵌入式应用程序。
5. 高集成度:内部集成了复位电路、低电压检测、调压器、精确的 RC 振荡器等,简化了外部电路设计。
6. 多种存储选项:具有不同容量的闪存和 SRAM 存储器,可根据应用需求进行选择。
7. 兼容性强:全系列产品共用大部分引脚、软件和外设,具有优异的兼容性,方便开发人员进行功能扩展和产品升级。
 
产品分类:
STM32 按内核架构可分为主流产品(如 STM32F0、STM32F1、STM32F3)、超低功耗产品(如 STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(如 STM32F2、STM32F4、STM32F7、STM32H7)等。
 
STM32F1 系列介绍:
以 STM32F1 系列为例,其中包括“增强型”STM32F103 系列和“基本型”STM32F101 系列等。增强型系列时钟频率达到72MHz,基本型时钟频率为36MHz。它们内置32K 到128K 的闪存,SRAM 的最大容量和外设接口的组合有所不同。STM32F1 系列的参数如下(以 STM32F103 为例):
 
- 内核:ARM 32 位 Cortex-M3 CPU,最高工作频率 72MHz,1.25DMIPS/MHz,具有单周期乘法和硬件除法功能。
- 存储器:片上集成 32-512KB 的 Flash 存储器,6-64KB 的 SRAM 存储器。
- 电源管理:2.0-3.6V 的电源供电和 I/O 接口驱动电压,具有上电复位(POR)、掉电复位(PDR)和可编程的电压探测器(PVD)。支持 4-16MHz 的晶振,内嵌出厂前调校的 8MHz RC 振荡电路、内部 40kHz 的 RC 振荡电路、用于 CPU 时钟的 PLL 以及带校准用于 RTC 的 32kHz 的晶振。
- 低功耗模式:具有休眠、停止、待机等3种低功耗模式,并设有为 RTC 和备份寄存器供电的 VBAT。
- 调试模式:支持串行调试(SWD)和 JTAG 接口。
- DMA:拥有 12 通道 DMA 控制器,支持定时器、ADC、DAC、SPI、IIC 和 UART 等外设。
- ADC:3 个 12 位的 us 级 A/D 转换器(16 通道),A/D 测量范围为 0-3.6V,具备双采样和保持能力,片上还集成一个温度传感器。
- DAC:部分型号(如 STM32F103xC、STM32F103xD、STM32F103xE)具有 2 通道 12 位 DAC。
- I/O 端口:最多高达 112 个快速 I/O 端口,不同型号分别有 26、37、51、80 或 112 个 I/O 端口,且所有端口都可映射到 16 个外部中断向量,除模拟输入外,都可接受 5V 以内的输入。
- 定时器:最多可达 11 个定时器,包括 4 个 16 位定时器(每个定时器有 4 个 IC/OC/PWM 或脉冲计数器)、2 个 16 位的 6 通道高级控制定时器(最多 6 个通道可用于 PWM 输出)、2 个看门狗定时器(独立看门狗和窗口看门狗)以及 2 个 16 位基本定时器(用于驱动DAC)。
- 通信接口:多达 13 个通信接口,如 2 个 IIC 接口(SMBus/PMBus)、5 个 USART 接口(支持 ISO7816 接口、LIN、IrDA 兼容、调试控制等)、3 个 SPI 接口(18Mbit/s,其中两个和 IIS 复用)、CAN 接口(2.0B)、USB 2.0 全速接口、SDIO 接口等。
 
应用领域:
STM32 系列微控制器应用广泛,涵盖工业控制、智能家居、汽车电子、医疗设备、航空航天、通信等众多领域。例如在工业自动化中可用于控制机器人、PLC、变频器等;在家电领域用于智能家居、智能电视等设备;在汽车电子领域用于汽车控制单元、导航等;在医疗设备领域用于血糖仪、心电图仪等;在通信领域用于无线通信模块等。
 
总之,STM32 系列微控制器以其高性能、低功耗、丰富的外设和易于开发等优点,成为了嵌入式应用开发的理想选择之一。其具体的型号和特性可以根据不同的应用需求进行选择和配置。在实际应用中,开发人员可以根据项目的具体要求,结合 STM32 的各种资源和工具,高效地开发出满足特定功能和性能需求的嵌入式系统。

为什么要学习STM32

首先,STM32 是一款广泛应用于嵌入式系统的微控制器,掌握它能够为您打开嵌入式开发领域的大门。通过学习 STM32,您可以深入了解微控制器的工作原理、硬件架构和编程方法,从而提升您对电子系统的整体理解和掌控能力。
 
其次,STM32 在众多领域都有应用,如工业控制、智能家居、医疗设备、消费电子等。学会 STM32 编程可以让您有能力参与到这些实际项目的开发中,为解决实际问题提供技术支持。
 
再者,学习 STM32 有助于培养您的逻辑思维和解决问题的能力。在编程过程中,您需要对各种任务进行分析、规划和实现,这能够锻炼您的思维严谨性和创新能力。
 
此外,STM32 的学习资源丰富,社区活跃,这为学习者提供了良好的交流和学习环境,便于您不断提升自己的技术水平。
 
最后,从职业发展角度看,掌握 STM32 技术可以增加您在就业市场上的竞争力,为您争取到更广阔的职业发展空间和更好的薪资待遇。

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

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

相关文章

栈的定义及基本操作

栈的定义和特点 栈是一个特殊的线性表,是限定在一端进行插入和删除操作的线性表; 插入到栈顶称作入栈(PUSH) 从栈顶删除最后一个元素称作出栈 (POP) 图1 栈的表示 假设三个元素a,b,c入栈顺序为a&#xf…

【洛谷/水滴题解】[NOIP2005 普及组] 采药

1.难度&#xff1a;普及- 2.类型&#xff1a;dp&#xff0c;01背包 3.描述&#xff0c;输入输出格式&#xff0c;样例&#xff1a; 4.AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int t,m; int dp[1005]; int main() {ios::sync_with_stdio(false…

MySQL第8讲--DCL(数据控制语言)的基本操作

文章目录 前言DCL(数据控制语言)用户管理查询用户创建用户修改用户密码删除用户 权限控制查询权限授予权限撤销权限 前言 在第六讲MySQL第6讲–DQL(数据查询语言)的基本操作之基本和条件查询和第七讲MySQL第7讲–DQL(数据查询语言)的基本操作中我们讲述了DQL中的&#xff0c;基…

高性能云桌面在工业设计中的应用,百度智能云云桌面给出答案

在之前的文章中我们讲到&#xff0c;边缘云桌面可以通过在距离用户较近的边缘节点上直接处理数据和应用&#xff0c;减少了数据传输时间&#xff0c;降低延迟&#xff0c;提高数据处理的速度和安全性。用户可以通过任何设备&#xff0c;随时随地访问自己的桌面环境&#xff0c;…

每日OJ_牛客HJ59 找出字符串中第一个只出现一次的字符

目录 牛客HJ59 找出字符串中第一个只出现一次的字符 解析代码 牛客HJ59 找出字符串中第一个只出现一次的字符 找出字符串中第一个只出现一次的字符_牛客题霸_牛客网 解析代码 可以用一个数组的每一个位置表示对应的位置。对应的字符位置存放字符出现的次数。统计完之后&…

【云备份】学习bundle库

文章目录 1.认识bundle⽂件压缩库bundle库实现⽂件压缩bundle实现文件解压缩 1.认识bundle⽂件压缩库 BundleBundle 是一个嵌入式压缩库&#xff0c;支持23种压缩算法和2种存档格式。使用的时候只需要加入两个文件 bundle.h 和 bundle.cpp 即可。 showcase #include <cass…

安全入门day.02

一、环境部署 1、windows版本 2、Linux版本 二、WEB应用组成角色名词 1、开发语言 2、程序源码 3、中间件容器 4、数据库 5、服务器操作系统 6、第三方软件 三、WEB应用安全漏洞分类 1、SQL注入 2、文件安全 3、RCE执行 4、XSS跨站 5、CSRF/SSRF/CRLF 6、反序列…

基于RK3568 Android11 移除长按电源按键弹窗的对话框中的 [关机] 和 [紧急呼救] 选项(详细分析)

一般来说&#xff0c;与Android按键窗口事件相关的基本是与frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 这个文件有关。   因此先打开与输入相关的日志&#xff0c;如下&#xff1a;   然后重新编译烧录后查看打印的日志可以看…

Matcha-Tts:一种基于条件流匹配的快速Tts架构笔记

MATCHA-TTS: A FAST TTS ARCHITECTURE WITH CONDITIONAL FLOW MATCHING笔记 提出问题&#xff1a; 1、合成速度慢 提出方法&#xff1a; 首先&#xff0c;提出了一种改进的编码器-解码器TTS架构&#xff0c;在解码器中使用1D CNN和Transformer的组合。这样减少了内存消耗&am…

使用tailwindcss轻松实现移动端rem适配

本示例节选自小卷全栈开发实战系列的《Vue3实战》。演示如何用tailwindcss所支持的rem体系轻松实现一个仿b站移动端头部导航栏rem适配。 友情声明 学习分享不易&#xff0c;如果小伙伴觉得有帮助&#xff0c;点赞支持下。满30赞&#xff0c;将随文附赠录屏讲解&#xff0c;感谢…

linux shell 脚本入门到实战

目录 一、shell入门简介1.1什么是shell1.2shell编程注意事项1.3第一个shell脚本helloworld 二、shell环境变量讲解2.1shell变量详解2.2shell系统变量介绍2.3shell环境变量介绍2.4shell用户环境变量介绍2.4.1自定义shell环境变量 三、shell编程流程控制语句3.1if条件语句介绍3.1…

TikTok出现“无网络连接”,具体原因与解决方法

“No network connection”&#xff01;当你信心满满下载并准备开始运营TikTok时&#xff0c;屏幕上如果提示“无互联网连接”非常难办。有很多因素可能会导致此问题&#xff0c;包括网络连接无效、应用程序故障等。接下来将为你盘点主要的原因与解决方法。 一、无网络连接的原…

C语言进阶(9)

程序的执行时有两种环境&#xff0c;一种是翻译环境&#xff0c;另一种是执行环境。程序先经过编译成为obj的后缀的文件&#xff0c;然后将文件和链接库链接起来&#xff0c;然后将形成可执行程序&#xff0c;前者时翻译环境&#xff0c;后者时执行环境。(链接库就是库函数的所…

【ComfyUI】Error occurred when executing WD14Tagger|pysssss :

解决ComfyUI的ComfyUI-WD14-Tagger插件运行报错问题 参考ONNX 运行时的 CUDA 和 cuDNN 加载错误 期刊 #56 pythongosssss/ComfyUI-WD14-标记器 (github.com) 我尝试了以下操作 转到 启动器&#xff0c; 启动CMD&#xff0c; 按回车键&#xff1a; 粘贴。卸载两个包 pip unin…

Linux之进程间通信(下)

目录 命名管道 命名管道的创建 匿名管道和命名管道的区别 命名管道的代码实现 共享内存 创建共享内存 关联共享内存 去关联共享内存 删除共享内存 共享内存特点 共享内存代码实现 IPC资源总结 命名管道 上期我们学习了匿名管道&#xff0c;匿名管道本质就是一个…

EcoVadis评估对可持续发展具体表现在哪些方面

Ecovadis认证是一项备受推崇的环保和社会责任认证&#xff0c;其优势不仅在于其权威性和公信力&#xff0c;更在于其全面而深入的评估标准&#xff0c;这个认证体系将企业划分为不同的等级&#xff0c;从入门级的银牌到最高级别的白金级&#xff0c;每个等级都有相应的评估标准…

Selenium + Python 自动化测试14(发送报告)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了使用HTMLTestRunner 生成HTML报告的方法。 本篇文章我们接着讲生成HTML报告是否可以自动邮件发送出去&#xff0c;提高我们测试报告的及时性&#xff0c;方便…

PCB入门笔记—绘制一个只有两个排针的PCB全流程记录—立创EDA专业版

PCB绘制入门&#x1f680; 硕士毕业之后准备进入博士阶段&#xff0c;本科阶段做的硬件&#xff0c;硕士阶段做的算法&#xff0c;然后博士阶段又要做回硬件了&#xff0c;因此也是打算补一补PCB相关的内容和知识&#xff0c;毕竟做控制的话&#xff0c;之后这也是不能躲开的必…

前端工程化-02.Yapi接口管理平台

YApi Pro-高效、易用、功能强大的可视化接口管理平台 图片中链接已失效&#xff0c;此处为新链接 选择添加接口&#xff0c;输入接口名称和接口路径。 创建成功后自动进入接口页面&#xff0c;点击编辑&#xff0c;可以编辑完善这个接口的信息。两个非常重要的信息&#xff1a…

进程waitwaitpid、线程

一、wait wait功能 1、获取子进程退出状态&#xff0c;分析子进程是否已经退出&#xff08;变成僵尸态&#xff09; 2、回收资源&#xff0c;让僵尸态子进程销毁 wait本身是一个阻塞操作&#xff0c;会使调用者阻塞 2、宏&#xff1a; &#xff08;1&#xff09;WIFEXITE…