当前位置: 首页 > news >正文

STM32--综述

文章目录

  • 前言
  • STM32简介
  • STM32F103C8T6
  • 系统结构
  • Keil软件安装注意事项
  • 新建工程操作流程

前言

本专栏将学习B站江协科技的STM32入门教程,通过自身理解和对老师的总结所写的博客专栏。

STM32简介

STM32是意法半导体(STMicroelectronics)公司推出的一系列微控制器(MCU)。作为嵌入式单片机,STM32旨在满足高性能、低成本和低功耗等嵌入式应用的需求。根据内核架构的不同,STM32被分为几个产品系列。

主要的产品系列包括:

  1. 主流产品:如STM32F0、STM32F1、STM32F3等,采用ARM Cortex-M0、M3和M4内核,适用于普通应用。
  2. 超低功耗产品:如STM32L0、STM32L1、STM32L4、STM32L4+等,以ARM Cortex-M0+和M4内核为基础,具有低功耗特性,适用于对功耗要求较高的应用。
  3. 高性能产品:如STM32F2、STM32F4、STM32F7、STM32H7等,采用ARM Cortex-M4和M7内核,提供更高的性能和处理能力。
    在这里插入图片描述

STM32具备丰富的外设和接口,包括通用输入输出端口(GPIO)、通用串行总线(USART、SPI和I2C)、模拟数字转换器(ADC)、定时器和计数器(TIM)、PWM输出、以太网接口等,以满足各种应用的需求。

此外,STM32还提供了丰富的开发工具和软件库,如STM32Cube软件平台和MDK-ARM开发环境等,方便开发人员进行嵌入式应用的开发和调试。

总之,STM32是一系列功能强大、灵活多样的微控制器,广泛应用于各种嵌入式系统,包括智能家居、工业自动化、汽车电子、医疗设备等领域。

STM32F103C8T6

在这里插入图片描述
这是我们所用的STM32系列中的一个型号芯片,特点是高性能、低功耗、有多种通信接口等。
在这里插入图片描述
这是它的片上资源。后续介绍将会用到这些资源。
在这里插入图片描述
这是它的命名规则。

系统结构

在这里插入图片描述
四个驱动单元
─ Cortex™-M3内核DCode总线(D-bus),和系统总线(S-bus)
─ 通用DMA1和通用DMA2

驱动单元是指在嵌入式系统中用于控制和驱动外部设备的部件和模块。它们通常包含了硬件接口电路和相关的软件代码,用于外部设备进行通信和控制

三个被动单元
─ 内部SRAM
─ 内部闪存存储器
─ AHB到APB的桥(AHB2APBx),它连接所有的APB设备

被动单元是指在嵌入式系统中用于接收和传输数据的部件或模块。它们通常不具备主动控制外设能力。被动单元可以包括传感器、接收器和输入设备等。

存储器
包含闪存(Flash)和随机访问存储器(SRAM)。闪存用于存储程序代码和非易失性数据,而SRAM用于临时数据存储和堆栈操作。

ICode总线
该总线将Cortex™-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。

DCode总线
该总线将Cortex™-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。

系统总线
此总线连接Cortex™-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。

DMA总线
此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。

总线矩阵
总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。产品中总线矩阵包含4个驱动部件(CPU的DCode、系统总线、 DMA1总线和DMA2总线)和4个被动部件(闪存存储器接口(FLITF)、 SRAM、 FSMC和AHB2APB桥)。

AHB/APB桥(APB)
两个AHB/APB桥在AHB和2个APB总线间提供同步连接。 APB1操作速度限于36MHz, APB2操作于全速(最高72MHz)。

在我们的操作中,一般只从AHB总线开始操作,桥接连接到我们的外设资源,通过编程代码程序来实现我们想要的结果

在这里插入图片描述
这是STM32上的引脚定义。

在这里插入图片描述
STM32的系统电路。

Keil软件安装注意事项

1.确保软件的安装路径不要出现中文!
很多人在安装软件习惯用中文的文件夹,但这是一款外国软件;倘若你安装路径出现中文字,那么将会在编写程序中所有代码都是黑色的,且不能自动补全。
在这里插入图片描述
不会出现图片中的情况。
那么解决方法是
首先把中文改为英文的,然后打开软件的文件夹,
在这里插入图片描述

打开这个文件
在这里插入图片描述
将里面所有路径出现中文改为你所改的路径即可。
没有这一步,后面的自动补全是没有办法操作的。

2.自动补全问题
在这里插入图片描述
点这个扳手,选择Text Compltion
在这里插入图片描述
在这里插入图片描述
都勾上并为3;

  1. 显示行数问题
    在这里插入图片描述
    将选项即可。

新建工程操作流程

在这里插入图片描述
首先我们需要将固件库中的库函数进行复制;

固件库可以自己官网搜索对应的型号进行下载或者直接下载江协老师的文件包

在自己的工程文件夹中建立这三个文件夹
在这里插入图片描述
在这里插入图片描述
按照这个路径,将inc和src中文件的内容全部复制进Library中;
在这里插入图片描述
按照这个路径,将所选文件全部放入Start中(arm中文件全选);
在这里插入图片描述
按照这个路径,将所选文件放入User中;

然后打开软件,在对应的工程文件夹中新建工程;
在这里插入图片描述
打开这个三色箱子
在这里插入图片描述
在Group中添加跟刚才创建文件夹一样的名字,然后在对应的文件夹中添加文件;
之后打开魔法棒,选择C/C++,在difine中包含这句命令;
在这里插入图片描述

包含路径中选择刚才创建的三个文件夹即可;

最后,
在这里插入图片描述
打开魔法棒,选择Dubug,选择ST-Link,最后选择设置
![在这里插入图片描述](https://img-blog.csdnimg.cn/42788d07b2b44035bd3d4586
在这里插入图片描述

如果Port没有选择SW记得选上,Pack把它勾上;
这样我们就设置好了工程;

而我们要做这么麻烦的设置,是因为ST公司已经为我们提供了库函数,在我们使用的时候,只需要调用对应的函数,就能执行对应的操作,方便我们不必要的程序编写

创建好后,我们把main函数中的内容删除,就可以编辑我们想要的内容了;然后在软件中跑起,如果程序没有报错,那么说明程序操作是没有问题的;
当我们想要重新创建另外的工程文件时,只需要复制这个模板文件夹,然后修改文件夹名称,打开执行文件,然后直接在main文件操作即可

相关文章:

STM32--综述

文章目录 前言STM32简介STM32F103C8T6系统结构Keil软件安装注意事项新建工程操作流程 前言 本专栏将学习B站江协科技的STM32入门教程,通过自身理解和对老师的总结所写的博客专栏。 STM32简介 STM32是意法半导体(STMicroelectronics)公司推…...

Linux学习之sed、awk和vim的差异

sed、awk和vim都是编辑器,区别如下: vim是交互式,需要跟用户进行互动,而sed和awk是非交互式,只需要写好命令,不用跟用户进行互动就可以完成任务。 vim是文本编辑器,操作的时候会对整个文件编辑&…...

MacOS上配置docker国内镜像仓库地址

背景 docker官方镜像仓库网速较差,我们需要设置国内镜像服务 我的MacOS docker版本如下 设置docker国内镜像仓库地址 点击Settings点击Docker Engine修改配置文件,添加registry-mirrors {"builder": {"gc": {"defaultKeepS…...

全志F1C200S嵌入式驱动开发(soc系统集成)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 任何一个嵌入式设备都是由很多的子系统组成的。这里面有硬件、有软件,还可能有机械,并不一定就是大家看到的消费电子那样,即一个soc构成了所有的系统。现实情况是,要构建一个系…...

React路由5版本

什么是路由? 一个路由就是一个映射关系(key:value). 以下代码用的都是router5 通过 npm install react-router-dom5 下载 所有路由用到的东西都需要从react-router-dom中引入 import {BrowserRouter,Link,Route,NavLink,Redirect,withRouter} from react-router-dom 1. 路…...

6.4.3 1x1卷积层

特点:1x1卷积层相当于全连接层 作用:1x1卷积用于调整网络层的通道数量和控制模型复杂度 输入形状:(通道,行,列) (3,3,3) 卷积核形状:(输出通道,输入通道,行,列) (2,3,…...

[CKA]考试之检查可用节点数量

由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 检查集群中有多少节点为Ready状态(不包括被打上 Taint&#xff1…...

备考错题知识点总结

错题知识点总结 强化一,错题,范围管理,128题目 1 强化练习题 1 不理解的题目 4 什么玩意? 读不懂 你正在与产品负责人一起确定可行的产品迭代计划。 当你讨论各种特性并确定它们的优先级时,你们都在努力理解哪些特…...

初识Flask:Python轻量级Web框架入门教程

Flask是一个用Python编写的轻量级Web应用框架。由于其“微”性质,Flask在提供核心服务的同时,仍然提供了许多扩展的可能性。在这篇文章中,我们将从最基础开始,学习如何使用Flask构建一个Web应用。 一、安装与初次启动 首先&…...

【BASH】回顾与知识点梳理(七)

【BASH】回顾与知识点梳理 七 七. 前六章知识点总结及练习7.1 总结7.2 练习 该系列目录 --> 【BASH】回顾与知识点梳理(目录) 七. 前六章知识点总结及练习 7.1 总结 由于核心在内存中是受保护的区块,因此我们必须要透过『 Shell 』将我…...

Python实现对IP网段的快速检测

前言 本文是该专栏的第33篇,后面会持续分享python的各种干货知识,值得关注。 在工作上可能会遇到这样的需求,需要你对某个IP地址的网段进行批量检测。将可用和不可用IP批量筛选出来,尤其是在爬虫项目中,对于IP可用性的检测需求较多。 那么在python中,有没有方法可以快速…...

伪操作、C和汇编、ATPCS协议

一、伪操作.global 全局.local 局部.equ 声明.macro 子函数.if .endif 条件编译.rept 重复操作.weak 弱化.word 申请一个字空间.byte 申请一个字节空间.align 地址对齐.arm ARM指令.thumb Thumb指令.text 代码段.data 数据段.space 申请N个字节空间 二、C和汇编的混合编程三、A…...

OPENCV C++(五)滤波函数+sobel边缘检测+人脸磨皮mask

滤波函数 中值滤波 medianBlur(frame, detectmat, 5); 平均滤波 blur(frame, detectmat, Size(5, 5)); 高斯滤波(最后一个是方差 越大越模糊) GaussianBlur(frame, detectmat, Size(5, 5),0); sobel的边缘检测函数 Sobel(gray, dx, CV_16S, 1, 0, 3…...

20天突破英语四级高频词汇——第②天

20天突破英语四级高频词汇~第2天加油(ง •_•)ง💪 🐳博主:命运之光 🌈专栏:英语四级高频词汇速记 🌌博主的其他文章:点击进入博主的主页 目录 20天突破英语四级高…...

【Python 学习】第一个python案例

Python的ATM机Demo 一、需要安装python环境(略) 二、ATM源码 # 初始化全局余额 money 5000# 定义初始化界面菜单函数def menu(name):"""主页面-主菜单 返回用户选择的菜单:param name: 用户名称:return: 返回菜单类型"""print(f"{name}…...

【C#学习笔记】值类型(2)

文章目录 Struct结构体类型为什么不推荐struct 元组类型可为空的值类型从可为空的值类型转换为基础类型提升的运算符如何确定可为空的值类型为什么建议少用T?装箱和取消装箱 Struct结构体类型 结构类型(“structure type”或“struct type”)是一种可封…...

【设计模式】-建造者模式

Java建造者模式:创建复杂对象的灵活构建者 在软件开发中,我们经常遇到需要创建一个复杂对象的情况。如果使用传统的构造函数进行对象创建,可能会导致构造函数参数过多,难以管理和维护。建造者模式(Builder Pattern&am…...

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据

eeprom 说明 eeprom介绍 AT24C01A,1K串行EEPROM:内部组织16页8字节,1K需要一个7位数据字地址进行随机字寻址。AT24C02,2K串行EEPROM:内部组织32页8字节,2K需要一个8位数据字地址进行随机字寻址。AT24C04,4K串行EEPRO…...

Python OpenCV读取并显示USB UVC摄像头

1. 安装Python, 略。 2. 安装 OpenCV: pip install opencv-python 3. 预览摄像头画面脚本: import cv2cap cv2.VideoCapture(0, cv2.CAP_DSHOW)if not (cap.isOpened()):print("Could not open video device")cap.set(cv2.CAP_PR…...

针对高可靠性和高性能优化的1200V碳化硅沟道MOSFET

目录 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance摘要信息解释研究了什么文章创新点文章的研究方法文章的结论 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance 摘要 本文详…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...