STM32单片机(一)STM32简介

news2025/1/12 23:03:32

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。
☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。
🌙专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。

⭐️ 专栏主要内容: 主要学习51单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:http://t.csdn.cn/HCD8v

本学习过程参考:https://space.bilibili.com/383400717

STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf

链接里压缩包的解压密码:32

本节是STM32单片机部分的第一节,主要对STM32部分课程进行简单介绍,以及对STM32单片机进行简单介绍。

文章目录

  • 一、STM32课程简介
  • 二、STM32简介
    • 2.1 STM32介绍
    • 2.2 ARM介绍

一、STM32课程简介

在这里插入图片描述

在STM32的学习过程中,将使用stm32最小系统板+面包板硬件平台进行学习和练习,硬件平台如上图所示,将STM32最小系统板(上图蓝色板子)插在面包板上,作为基本的硬件单元,下面插上一块0.96寸的OLED(右下角黑色板子)作为调试和显示的屏幕,在调试程序时,可以把程序中的变量显示在这个屏幕上,这样调试起来就会比较方便;右边的STLINK(紫色部分)插在电脑上用于下载程序和供电;最上面的是蜂鸣器模块;

使用面包板可以完成任意电路的连接,接线和修改都是非常方便的;相比较成品的开发板方式,使用面包板更有利于我们对硬件电路的学习,而且也可以避免开发板的一些问题,比如引脚冲突、引脚无法更改等;

当然使用面包板也会带来一些问题,比如如果程序现场跑不出来,不仅有可能是程序的问题,也有可能是接线的问题等;这就需要我们在连线的时候要更加细心;关注软件程序的同时,也要关注硬件电路;

硬件设备

在这里插入图片描述

软件设备:

在这里插入图片描述
这次学习STM32使用的是Keil5 MDK这个软件,Keil5 SDK是用来给ARM系列的单片机编程的。

套件介绍

在这里插入图片描述

在这里插入图片描述

中间白色部分是面包板,左边这一盒是面包板专用的跳线,这种跳线比较短,可以贴在面包板上插线,比较适合长时间插线的情况;上面那一扎是面包板的飞线,这种线比较长,也方便挪动,比较适合经常挪动的接线情况;飞线下面两排是杜邦线,分别是公对母和母对母的,可以用于插接一些电路模块;

在这里插入图片描述

蓝色部分是STM32最小系统板,该板上中间的黑色小模块就是STM32芯片,我们就是主要学习这个小芯片;STM32最小系统板的右边是0.96寸的OLED显示屏模块,用于显示参数和变量,这个显示屏是一个4引脚版本的,现在网上卖的由4引脚和7引脚的,主要不要弄错了;

图中右上角的是电位器,主要用来进行AD转换试验的;电位器下面是按键,两引脚的小按键,它可以正好跨接在面包板的引脚插孔和电源插孔之间,插接非常方便整洁,如下图所示:
在这里插入图片描述

在这里插入图片描述

五颜六色的是LED灯;左边紫色部分的是STLINK,用来下载程序和供电的;STLINK下面是USB转串口模块,使用这个模块就可以使STM32和电脑进行串口通信了;

在这里插入图片描述

有源蜂鸣器模块,内置震荡源,接上电就可以响;相比较无源蜂鸣器模块需要不断反转IO口的操作方式,有源蜂鸣器模块就方便多了,基本和点灯一样简单;

右边四个是传感器模块,第一个是光敏电阻模块,下面的四个引脚有两个是用来供电的,还有两个是光敏电阻信号的模拟输出和数字输出,可以用来进行IO口读取实验或者AD试验;第二个是热敏电阻模块,也是有模拟输出和数字输出的;第三个是对射式红外模块,这个模块配合遮光片可以用来计次,或者配合编码盘用来测速;第四个是反射式红外模块,它可以向地面发射红外光,然后再用红外接收管接收地面反射的红外光,通过判断接收光的强度,就可以大体地识别出地面的颜色变化了;

在这里插入图片描述

W25Q64 Flash存储模块,它可以存储数据,并且是用SPI总线进行通信的,我们主要用它来学习SPI通信;

MPU6050陀螺仪和加速度计,它可以测量芯片自身的姿态,像四轴飞行器上,一般都会配有陀螺仪和加速度计,他是用I2C总线通信的,我们主要用它来学习I2C通信;

旋转编码器,它可以输出两路正交的方波信号,用于指示旋转的方向和速度,STM32里有专用的编码器电路,可以很方便的识别这种信号,这个模块可以当做一个快读的按键来使用,当然本节主要还是用它来模拟编码器的测速,现在的编码电机一般配备活儿传感器或光电传感器,这些传感器的输出和这种旋转编码器是一样的,所以学习一下旋转编码器就可以了;而且这种旋转编码器还比较方便插在面包板上,而且比较便宜;

直流电机和TB6612电机驱动模块,可以用来进行直流电机的PWM调速实验;

SG90舵机,也是用PWM来控制的,它的输出端可以像船舵一样,根据我们给定的PWM信号的占空比固定在某一个角度上,可以用来做一些机器人或者机械臂的关节;

二、STM32简介

2.1 STM32介绍

在这里插入图片描述
ST的意思是ST公司,M是微控制器Microcontroller的首字母;微控制器就是MCU,就是我们常说的单片机,所以STM32也是一款单片机;32的意思是这是一款32位的单片机,相比较8位的51单片机,STM32的性能还是非常强的,当然ST也推出过8位的单片机,名字叫STM8,这个了解一下就行;

这个ARM Cortex-M内核就是STM32内部的核心部分;这个内核是ARM公司设计的,它在STM32中占据极为重要的地位;比如我们程序指令的执行,加减乘除的运算,都是在内核中完成的;它相当于整个芯片的CPU;

在这里插入图片描述

如图中所示,目前STM32主要有四个系列,分别是高性能系列(High Performance)、主流系列(Mainstream)、超低功耗系列(Ultra-low-power系列)和无线系列(Wireless);每个系列对应着不同的产品;

例如:

  • 高性能系列就有STM32F2、F4、F7、H7这些;图中有具体型号芯片的详细性能介绍;比如F2系列就是398 CoreMark和120MHz主频的Cortex-M3内核;这个CoreMark就是一个内核跑分,跑分越高性能越好;Cortex-M3内核就是ARM的其中一个内核芯片;可以看到,STM32H7是目前最强的STM32芯片,拥有3224的内核跑分,550MHz的cortex-M7和240MHz的cortex-M4的内核,是一个双核微控制器;
  • 主流系列包含了F0、F1、F3这些型号;我们本次教程使用的就是STM32F1的这个系列,由177的内核跑分和72MHz的cortex-M3内核;
  • 超低功耗系列包含L0、L1、L4、L5等型号;
  • 无线系列的STM32,包括STM32Wl和STM32WB,可以了解一下;

以上这些就是目前STM家族中的所有系列了;可以看出来这个系列还是比较全的;我们学习的事主流系列;当然如果觉得性能不够也可以继续进阶学习高性能的系列;如果对功耗比较敏感,也可以学习一下低功耗系列;如果想做无线通信的产品,可以了解一下无线的系列;因为他们都是一个家族的,所以换一个系列再学习的话也会比换别的芯片轻松很多;

2.2 ARM介绍

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

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

相关文章

国产FPGA选型指南:如何选择适合你的国产FPGA芯片?

FPGA自1985年由Xilinx的创始人之一Ross Freeman发明后,全球90%的FPGA市场一直被国外厂家所占有,主要是这四家公司:Xilinx、Altera、Lattice、Microsemi。 Xilinx 和Altera公司占据了全球近80%以上的市场份额,且拥有着FPGA领域绝大…

Java学习笔记20——内部类

内部类 内部类的访问特点内部类的形式成员内部类局部内部类匿名内部类匿名内部类在开发中使用 内部类是类中的类 内部类的访问特点 1.内部类可以直接访问外部类的成员,包括私有成员 2.外部要访问内部类的成员,必须创建对象 内部类的形式 成员内部类 …

java变量类型

文章目录 一、java变量类型一.java变量类型二、Java 参数变量三、Java 局部变量四、成员变量(实例变量)五、类变量(静态变量) 总结 一、java变量类型 一.java变量类型 在Java语言中,所有的变量在使用前必须声明。声明…

13. InnoDB引擎底层原理及Mysql 8.0 新增特性详解

MySQL性能调优 查看系统中的各种LSN值 本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。 01.redo日志的作用和格式 02.redo日志的写入过程 03.什么是Log Sequence Number? 04.innodb_flush_log_at_trx _c…

(学习日记)AD学习 #3

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

二叉树的学习

最近在复习数据结构和线性代数,先准备周六的线代考试,好好复习。 目录 树的概念 结点: 空树: 子树: 结点的度: 树的度: 层数: 结点的深度: 结点的高度&#xff…

matplotlib运用:电商广告投入及销量预测【数据集+完整代码】

前期准备 数据准备 数据集有两个表 销售数据表投放费用的广告费用表 文章源码获取方式 👉👉 点击文末名片 1. 分别按 日 和 月 分析销售收入 绘制子图 figure(numNone, figsizeNone, dpiNone, facecolorNone, edgecolorNone,frameonTrue)num:图像…

23岁大专零基础学网络安全能找到工作吗?

当然好找工作,如今在21世纪的信息时代,我们的生活与互联网越来越不可分割。但与此同时,信息安全事件也不时发生,网络安全越来越受到关注。譬如,近期360集团公布黑客帝国对我国进行长达10年的网络攻击;北京健…

MySQL调优方式

1. 选择合适的存储引擎: InnoDB 除非你的数据表使用来做只读或者全文检索 (相信现在提到全文检索,没人会用 MYSQL 了),你应该默认选择 InnoDB 。 你自己在测试的时候可能会发现 MyISAM 比 InnoDB 速度快,这是因为: MyISAM 只缓存索…

三、DRF关联表的序列化(通过主表,查询从表数据)

官方文档: Serializers - Django REST framework中文站点 上一章: 二、Django REST Framework (DRF)序列化&反序列化_做测试的喵酱的博客-CSDN博客 一、前提 models.py class MiaoClass(models.Model):id models.AutoField(primary_keyTrue, v…

Springboot +spring security,实现前后端分离,使用JSON数据格式登录(将表单提交方式改成json格式登录)

一.简介 在前面的文章中,我们使用表单方式完成登录提交,但是目前基本都是前后端分离项目,很少使用表单提交的方式,基本都是json方式,使用ajax提交,那么我们怎么将表单提交方式改成json格式登录呢&#xff…

语雀批量导出 mardown 文档(不需要 token)

推荐一个小工具:renyunkang/yuque-exporter ,可以不借助语雀超级会员的 token 实现批量导出 markdown 文档。我的语雀知识库又可以实现免费迁移了,点个小星星支持一下。 说明: 这是一个基于puppeteer 来模拟用户在浏览器的操作…

基于深度强化学习的目标驱动型视觉导航泛化模型

深度强化学习在目标驱动型视觉导航的泛化 参考论文《Towards Generalization in Target-Driven Visual Navigation by Using Deep Reinforcement Learning》 文章目录 深度强化学习在目标驱动型视觉导航的泛化1. 目标驱动型视觉导航问题2. 创新点和解决的问题2.1 创新点2.2 解…

随身WIFI折腾日记(四)---拓展USB接口读取U盘内容

五、USB行为控制 随身WIFI对外交互的接口只有WIFI和USB接口。如果要想接入其他硬件设备,拓展USB接口至关重要,对于USB接口的控制,参考如下链接: openstick项目官方教程:控制usb行为 HandsomeMod/gc: A Simple Tool To Control Usb Gadget …

Opencv C++图像处理:点多边形测试 + 矩 + 凸包 + 映射 + 反向投影

文章目录 1、点多边形测试1.1、计算像素点是在轮廓内部、外部或边界上:cv::pointPolygonTest()1.2、计算最小值和最大值及其位置:cv::minMaxLoc()1.3、实战案例 2、矩2.1、计算多边形或光栅化形状的三阶以下的所有力矩:cv::moments()2.2、计算…

Regularization

在图像中的特征处理: 平均亮度的去除 SVD Whiten PCA 参数初始化策略 数据归一化: 标准归一化缩放归一化PCA/SVD 数据归一化对梯度的影响 归一化后,可以更快的搜索到最优值点 正则化 数据增强与早停 图像数据的增强主要是通过算法…

测试新手如何去学习接口自动化测试 ?从这一套测试框架开始 。

接口自动化测试框架系列之整体介绍 1.接口自动化测试1.自动化框架概述2.搭建自动化测试框架3.测试框架中所使用到的技术 1.接口自动化测试 自动化测试虽然是测试中比较热的一门技术 ,但凡一个测试岗位,你几乎都能看到有自动化测试的要求 。但不得不说&a…

关于深度学习方面的一些概念

1、自学习(self-taught learning)与半监督学习   自学习(self-taughtlearning)是不要求未标注数据 X u X_u Xu​和已标注数据 X l X_l Xl​来自同样的分布。另外一种带限制性的方式也被称为半监督学习,它要求 X u X_u Xu​和 X l X_l Xl​服…

[快速入门前端17] CSS 选择器(6) 选择器总结

基本选择器 选择器说明语法通配符作用范围为所有标签,用于页面整体样式* { color: red }元素作用于同种标签,不能进行差异化样式设定p { color: red }类别作用于我们自行设定的类别,是使用频率最高的选择器.myClass { color: red }ID选取当前…

15JS06——流程控制-循环

目标: 1、循环 2、for循环 3、双重for循环 4、while循环 5、do while循环 6、continue break 7、命名规范以及语法格式 一、循环 1、循环的目的 可以重复执行某些代码 2、JS中的循环 for循环 while循环 do…while循环 二、for循环 在程序中,一…