嵌入式开发一:初识Stm32

news2024/10/5 14:06:11

目录

一、嵌入式简介

1.1 嵌入式概念

1.2 嵌入式系统的组成

1.3 嵌入式的分类

1.3.1 嵌入式系统的分类

1.3.2 嵌入式处理器的分类

二、单片机简介(MCU嵌入式微控制器)

2.1 单片机是什么

2.2 单片机的作用是什么

2.3 单片机的发展历程

2.4 单片机发展趋势

2.5 复杂指令集计算机(CISC)精简指令集计算机(RISC)区别

2.6 计算机的冯诺依曼结构VS哈佛结构

三、CortexM系列介绍

3.1 ARM公司

3.2 ARM的体系架构

3.3 Cortex内核分类及特征

3.3 Cortex-M3/4/7介绍

四、Stm32介绍

4.1 Stm32是什么

4.2 Stm32命名规则

4.3  Stm32选型

4.4 系统架构 

五、Stm32原理图介绍

5.1 学会查看数据手册

5.2 主控芯片MCU 

5.3 最小系统

5.3.1 电源电路

5.3.2 复位电路

5.3.3 BOOT启动电路

5.3.4 晶振电路

5.3.5 下载调试电路

5.4 其他电路

5.4.1 引出IO口

5.4.2 USB 串口/串口 1 选择接口

5.4.3 按键

5.4.4 有源蜂鸣器

5.4.5 USB 串口

一、嵌入式简介

1.1 嵌入式概念

       嵌入式,⼀般是指嵌⼊式系统。本质上是计算机系统的⼀种。 计算机系统的应用市场: ①服务器市场:超强性能的处理器 ②桌面市场:通用处理器 ③嵌入式市场:嵌入式处理器。如何理解嵌入式系统?

     是以应用为中心,以计算机技术为基础,软硬件可裁剪适用于对功能、可靠性、成本、体积、 功耗有严格要求的专用计算机系统。嵌入式系统通常是嵌入到目标设备中的,为特定的任务提供计算和控制功能。是将应用程序、操作系统、和计算机硬件集成在⼀起的系统

1.2 嵌入式系统的组成

硬件:处理器 + 外围设备电路(外设)                                 软件: 操作系统 + 应用程序

1.3 嵌入式的分类

1.3.1 嵌入式系统的分类

片级: 单片机(stm32f407芯片) 、DSP等以arm为核心的产品
板级: 最小系统板
系统级: 产品

1.3.2 嵌入式处理器的分类

       1. 嵌入式微处理器(MPU) :以通用计算机中的标准CPU为微处理器,并将其装配在专门设计的电路板上,构成嵌入式系统。这种系统具有较强的通用性和可扩展性,但是体积和功耗较大。
       2. 嵌入式微控制器(MCU) :以单片机为代表,将微处理器、存储器、I/O接口等集成在一块芯片上,构成嵌入式系统。这种系统具有单片化、体积小、功耗低、可靠性高的特点,是目前工业控制的主流
      3.嵌入式数字信号处理器(DSP) :以DSP为代表,对系统结构和指令进行了特殊设计,使其适合执行信号处理算法,如数字滤波、FFT、 谱分析等。这种系统具有高速、高精度、低功耗的特点,但是编程难度较高,适合复杂的信号处理应用。
       4.嵌入式片上系统(SOC) :以SoC为代表,将一个或多个微处理器、存储器、外围功能模块等集成在一块芯片上,构成嵌入式系统。这种系统具有高度集成、高性能、低成本的特点,但是设计难度较大,适合高端的嵌入式应用。

二、单片机简介(MCU嵌入式微控制器)

2.1 单片机是什么

单片机: Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片

2.2 单片机的作用是什么

1.仪器仪表:电源/示波器/焊台
2.家用电器:空调/冰箱/洗衣机
3.工业控制:机器人/PLC/电梯
4.汽车电子:GPS/ABS/胎压监测

2.3 单片机的发展历程

2.4 单片机发展趋势

2.5 复杂指令集计算机(CISC)精简指令集计算机(RISC)区别

     复杂指令集计算机(CISC)和精简指令集计算机(RISC)是两种计算机体系结构的范例,它们在处理指令和执行操作时具有不同的设计理念和优势。

2.6 计算机的冯诺依曼结构VS哈佛结构

       冯·诺依曼结构和哈佛结构是计算机系统中两种不同的指令和数据存储方式。

1. 冯·诺依曼结构(Von Neumann Architecture):
       冯·诺依曼结构是早期计算机系统采用的主要架构之一。它将程序指令和数据存储在同一块存储器中,即存储器中的指令和数据共享同一个地址空间在冯·诺依曼结构中,指令和数据都以二进制形式存储在存储器中,并由同一组总线连接到中央处理器(CPU)。CPU依次从存储器中读取指令和数据,并按照程序顺序执行。

2. 哈佛结构(Harvard Architecture):
      哈佛结构将程序指令和数据存储在两个独立的存储器中,分别称为指令存储和数据存储器。在哈佛结构中,指令和数据使用不同的总线传输到CPU。因此,指令和数据具有独立的地址空间,不会发生地址冲突。哈佛结构通常能够实现更高的效率,因为CPU可以同时从指令存储器和数据存储器中读取数据,而不会发生竞争或冲突。

二者的区别:
   (1)存储器分配:冯·诺依曼结构将指令和数据存储在同一块存储器中,而哈佛结构将它们存储在两个独立的存储器中。
  (2)总线结构:冯·诺依曼结构使用单一总线连接CPU和存储器,而哈佛结构使用分离的指令总线和数据总线。
  (3)地址空间:在冯·诺依曼结构中,指令和数据共享同一地址空间,而在哈佛结构中,它们具有独立的地址空间。
 (4)并行性:由于哈佛结构中指令和数据具有独立的存储器和总线,因此它有更好的并行性和效率。

       总的来说,冯·诺依曼结构适用于一般的计算机系统,而哈佛结构通常用于嵌入式系统和特定应用领域,以提高效率和性能。

三、CortexM系列介绍

3.1 ARM公司

      ARM(Advanced RISC Machines)公司:只做内核设计和IP授权,不参与芯片设计。既可以认为是一个公司的名字,也可以认为是对一类微处理器的统称。

①公司的名称。②⼀类处理器的统称 ③⼀类技术:ARM 架构,⽤来设计处理器的技术。

3.2 ARM的体系架构

ARM11(armv6)之后,命名⽅式改成了cortex- ?系列:

cortex-M: mcu /微处理器

cortex-R:real time 实时处理器;汽⻋

cortex-A:application ⾼端处理器,可以运⾏系统(Linux);⼿机、平板

3.3 Cortex内核分类及特征

3.3 Cortex-M3/4/7介绍

四、Stm32介绍

4.1 Stm32是什么

   ST:意法半导体;

   M:Microcontroller/微控制器 全称:意法半导体⽣产的32位处理器;

      我们教学⽤的这款ST的控制器STM32F4067ZGT6,就是基于ARM的Cortex-M4内核的微处理器(MCU)

     ST公司累计推出了: 5大类、18个系列、1000多个型号的Cortex内核微控制器。

ST中文社区网: https://www.stmcu.orq.cn

ST官网: https://www.st.com

4.2 Stm32命名规则

    以我们使用的Stm32F407ZGT6为例。

Stm32F407ZGT6芯片资源介绍

4.3  Stm32选型

依据原则:性能由高到低,由大到小。

4.4 系统架构 

     STM32F407ZGT6芯片内部的总线矩阵是一种用于连接处理器核心、外设和存储器之间的高速数据传输的结构,它提供了高速、多通道的数据传输通路,为嵌入式系统的设计和开发提供了灵活性和性能保障。

  • 总线矩阵提供了处理器核心(如ARM Cortex-M4)与芯片内部外设(如定时器、串口、SPI、I2C等)和存储器(如Flash、SRAM等)之间的连接通路。
  • 这些通路以总线的形式存在,允许处理器核心通过总线与外设和存储器进行数据交换和通信。

五、Stm32原理图介绍

5.1 学会查看数据手册

如何获取数据手册?

     (1)ST官网: https://www.st.com
     (2)ST中文社区网: https://www.stmcu.org.cn/

正点原子开发板对应的主控型号和封装

5.2 主控芯片MCU 

     正点原子探索者 STM32 开发板选择的是 STM32F407ZGT6 作为 MCU,该芯片是 STM32F407 里面配置非常强大的了,它拥有的资源包括:192KB SRAM、1024KB FLASH、12 个 16 位定时器、2 个 32 位定时器、2 个 DMA 控制器(共 16 个通道)、3 个 SPI、2 个全双工 I2S、3 个 IIC、6 个串口、2 个 USB(支持 HOST/SLAVE)、2 个 CAN、3 个 12 位 ADC、2 个 12 位 DAC、1 个 RTC(带日历功能)、1 个 SDIO 接口、1 个 FSMC 接口、1 个 10/100M 以太网 MAC 控制器、1 个摄像头接口、1 个硬件随机数生成器以及 112 个通用 IO 口。该芯片的配置十 分强悍,很多功能相对 STM32F1 来说进行了重大改进,比如 FSMC 的速度,F4 刷屏速度可达 3300W 像素/秒,而 F1 的速度则只有 500W 左右。 MCU 部分的原理图如图 2.1.1.1-1 和图 2.1.1.1-2(由于 MCU 引脚比较多,因此我们把原理 图分成 2 部分,方便查看)所示:

 

 

5.3 最小系统

最小系统:保证MCU正常工作的最小电路组成单元

5.3.1 电源电路

正点原子探索者 STM32 开发板板载的电源供电部分,其原理图如图 2.1.29.1 所示:

图中,总共有 3 个稳压芯片:U10/U11/U12,DC_IN 用于外部直流电源输入,范围是 DC6~15V, 输入电压经过 U10 DC-DC 芯片转换为 5V 电源输出,其中 VD1 是防反接二极管,避免外部直 流电源极性搞错的时候,烧坏开发板。K1 为开发板的总电源开关,F1 为 1000ma 自恢复保险 丝,用于保护 USB。U11 和 U12 均为 3.3V 稳压芯片,给开发板提供 3.3V 电源,其中 U11 输出 的 3.3V 给数字部分用,U12 输出的 3.3V 给模拟部分(ES8388)使用,分开供电,以得到最佳音频。正点原子探索者 STM32 开发板板载了两组简单电源输入输出接口,其原理图如图 2.1.30.1 所示:

图中,VOUT1 和 VOUT2 分别是 3.3V 和 5V 的电源输入输出接口,有了这 2 组接口,我们 可以通过开发板给外部提供 3.3V 和 5V 电源了,虽然功率不大(最大 1000ma),但是一般情况 都够用了,大家在调试自己的小电路板的时候,有这两组电源还是比较方便的。同时这两组端 口,也可以用来由外部给开发板供电。 

5.3.2 复位电路

正点原子探索者 STM32F407 的复位电路如图 2.1.7.1 所示:

因为 STM32 是低电平复位的,所以我们设计的电路也是低电平复位的,这里的 R51 和 C65 构成了上电复位电路。同时,开发板把 TFT_LCD 的复位引脚也接在 RESET 上,这样这个复位 按钮不仅可以用来复位 MCU,还可以复位 LCD。 

5.3.3 BOOT启动电路

正点原子探索者 STM32F407 的启动模式设置端口电路如图 2.1.8.1 所示:

5.3.4 晶振电路

5.3.5 下载调试电路

正点原子探索者 STM32F407 板载的标准 20 针 JTAG/SWD 接口电路如图 2.1.4.1 所示:

这里,我们采用的是标准的 JTAG 接法,但是 STM32 还有 SWD 接口,SWD 只需要最少 2 跟线(SWCLK 和 SWDIO)就可以下载并调试代码了,这同我们使用串口下载代码差不多,而且速度非常快,能调试。所以建议大家在设计产品的时候,可以留出 SWD 来下载调试代码, 而摒弃 JTAG。STM32 的 SWD 接口与 JTAG 是共用的,只要接上 JTAG,你就可以使用 SWD 模式了(其实并不需要 JTAG 这么多线),当然,你的调试器必须支持 SWD 模式,DAP、ST LINK、JLINK 和 ULINK 等都支持 SWD 调试。 特别提醒,JTAG 有几个信号线用来接其他外设了,但是 SWD 是完全没有接任何其他外设 的,所以在使用的时候,推荐大家一律使用 SWD 模式!!!

5.4 其他电路

5.4.1 引出IO口

正点原子探索者 STM32F407 引出了 STM32F407ZGT6 的所有 IO 口,如图 2.1.2.1 所示:

      图中P7、P8和P9为MCU主IO引出口,这三组排针共引出了102个IO 口,STM32F407ZGT6 总共有 112 个 IO,除去 RTC 晶振占用的 2 个,还剩 110 个,这三组主引出排针,总共引出了 102 个 IO,剩下的 8 个 IO 口分别通过:P10(PA9&PA10)、P4(PA2&PA3)、P2(PB10&PB11) 和 P5(PA11&PA12)等 4 组排针引出。

5.4.2 USB 串口/串口 1 选择接口

正点原子探索者 STM32F407 板载的 USB 串口和 STM32F407ZGT6 的串口是通过 P10 连接 起来的,如图 2.1.3.1 所示:

图中 TXD/RXD 是相对 CH340 来说的,也就是 USB 串口的发送和接收脚。而 USART1_RX 和 USART1_TX 则是相对于 STM32F407ZGT6 来说的。这样,通过对接,就可以实现 USB 串口和 STM32F407ZGT6 的串口通信了。同时,P10 是 PA9 和 PA10 的引出口。 这样设计的好处就是使用上非常灵活。比如需要用到外部TTL串口和STM32通信的时候, 只需要拔了跳线帽,通过杜邦线连接外部 TTL 串口,就可以实现和外部设备的串口通信了;又 比如我有个板子需要和电脑通信,但是电脑没有串口,那么你就可以使用开发板的 RXD 和 TXD 来连接你的设备,把我们的开发板当成 USB 转 TTL 串口用了。

5.4.3 按键

正点原子探索者 STM32F407 板载总共有 4 个输入按键,其原理图如图 2.1.20.1 所示:

KEY0、KEY1 和 KEY2 用作普通按键输入,分别连接在 PE4、PE3 和 PE2 上,这里并没有 使用外部上拉电阻,但是 STM32 的 IO 作为输入的时候,可以设置上下拉电阻,所以我们使用 STM32 的内部上拉电阻来为按键提供上拉。 KEY_UP 按键连接到 PA0(STM32 的 WKUP 引脚),它除了可以用作普通输入按键外,还可 以用作 STM32 的唤醒输入。注意:这个按键是高电平触发的。

5.4.4 有源蜂鸣器

正点原子探索者 STM32F407 板载了一个有源蜂鸣器,其原理图如图 2.1.23.1 所示:

有源蜂鸣器是指自带了震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。而如 果是无源蜂鸣器,则需要外加一定频率(2~5Khz)的驱动信号,才会发声。这里我们选择使用有源蜂鸣器,方便大家使用。 图中 Q4 是用来扩流,R65 则是一个下拉电阻,避免 MCU 复位的时候,蜂鸣器可能发声的现象。BEEP 信号直接连接在 MCU 的 PF8 上面,PF8 可以做 PWM 输出,所以大家如果想玩高级点(如:控制蜂鸣器“唱歌”),就可以使用 PWM 来控制蜂鸣器。

5.4.5 USB 串口

正点原子探索者 STM32 开发板板载了一个 USB 串口,其原理图如图 2.1.31.1 所示

       以上便是为大家带来的STM32的第一节的内容,主要认识嵌入式系统和对于stm32有个大概的认识,后面会逐步介绍每个外设的固件库使用方法,如有兴趣,感谢点赞、关注、收藏,若有不正地方,还请各位大佬多多指教!

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

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

相关文章

Web APIs 学习归纳3---元素操作的补充

上一节也学习了一些有关元素操作的内容,主要集中在样式、属性、内容的修改。 一、元素操作的经典案例和思想 1.1 排他思想(排除他人、保留自己) 这个内容很重要,一般情况下如果有同一组元素,我们想要某一个元素实现某…

spring常用注解(五)lombok库

一、介绍: 1、简介: Lombok是一个作用于编辑器和构建工具的 Java 库,可以对编写的 Java 代码进行增强,比如说不用再写实体类的 getter 方法,equals 方法而是自动生成,自动生成日志输出变量等等&#xff0…

NXP i.MX8系列平台开发讲解 - 3.10 Linux PCIe资源分配与访问(二)

目录 1. PCIe BFD 2. PCIe 配置空间 2.1 PCIe 配置空间访问 PCIe I/O访问方法 PCIe MMIO访问方法 3. PCIe BAR相关 4. PCIe Capbility 5. PCIe 操作 本文将重点讲解PCIe的资源访问相关内容,对于PCIe资源访问是从Host 端老看可以对PCIe进行配置与访问的资源主…

微信小程序的常用API②

一、动画API (1)作用:用于在微信小程序中完成动画效果的制作 (2)使用:创建实例 wx.createAnimation() (3)常用属性: duration 【number型】 动画持续时间&…

TCN-LSTM时间卷积网络长短期记忆网络多输入多输出回归预测

文章目录 效果一览文章概述 订阅专栏只能获取一份代码部分源码参考资料 效果一览 文章概述 TCN-LSTM时间卷积网络长短期记忆网络多输入多输出回归预测 matlab2021 订阅专栏只能获取一份代码 部分源码 %------------------------------------------------------------------…

EureKa技术解析:科技行业的革新风暴(ai写作)

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

目标检测——YOLOv6算法解读

论文:YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications (2022.9.7) 作者:Chuyi Li, Lulu Li, Hongliang Jiang, Kaiheng Weng, Yifei Geng, Liang Li, Zaidan Ke, Qingyuan Li, Meng Cheng, Weiqiang Nie, Yiduo Li, Bo …

SpringBoot---------整合Redis

目录 第一步:引入依赖 第二步:配置Redis信息 第三步:选择Spring Data Redis进行操作Redis数据库 ①操作String类型数据(用的少) ②操作Object类型数据(重要!!!&#x…

Linux 设置 ssh 服务开机自启并允许 root 账户以密码验证身份登录

确保openssh-server已安装。 确保防火墙已允许 ssh 端口上的传入连接。 修改 ssh 服务的 sshd_config 文件,以允许 root 账户以密码验证身份登录。 1、 从 sshd_config 中删除所有包含 “PermitRootLogin” 的行 sed -i "/^PermitRootLogin/d" /etc/s…

微信小程序关于主包大小不能超过1.5MB的问题

常规的解决办法有以下几种 1、把资源文件改成远程服务器的,比如png这些 2、进入如图的分析页面,能明确知道你哪个插件包太大,我这里之前echart的包就1mb,现在给他缩减到了500kb的样子 3、解决vant等npm包太大的问题&#xff0c…

【代码随想录刷题记录】LeetCode283移动零

题目地址 1. 思路 1.1 基本思路及假设 拿到这个题,首先想到,这是类似删除元素的方法,因为删除元素也是移动元素,但是移动的方向和删除元素的方法刚好相反,我们都知道,如果在数组中删除某个元素&#xff…

小程序使用阿里巴巴矢量图标库

一、登录官网 www.iconfont.cn 二、在搜索框中搜索想要的图标,将鼠标移动到图标上会看到三个标记 可以使用下载,直接使用: 可以使用css文件使用: 首先点击购物车样式的选项,而后点击下图位置: 点击自己创…

嵌入式Linux学习——Linux常用命令(上)

Linux命令行介绍 Linux Shell 简介 Shell 的意思是“外壳”,在 Linux 中它是一个程序,比如/bin/sh、/bin/bash 等。它负责接收用户的输入,根据用户的输入找到其他程序并运行。比如我们输入“ ls”并回车时, shell 程序找到“ ls…

Kafka 3.x.x 入门到精通(06)——Kafka进阶

Kafka 3.x.x 入门到精通(06)👉👉👉👉 Kafka进阶 3. Kafka进阶3.1 Controller选举3.2 Broker上线下线3.3 数据偏移量定位3.4 Topic删除3.5 日志清理和压缩3.7 页缓存3.8 零拷贝3.9 顺写日志3.10 Linux集群部…

循环购模式:电商消费增值的新引擎

大家好,我是微三云周丽! 在数业模式和创新的营销策字经济的浪潮下,电商行业以其独特的商略,不断刷新着消费者的购物体验。 近年来,循环购模式作为一种新兴的电商消费增值模式,逐渐在市场中崭露头角&#…

上门服务系统|上门服务小程序搭建流程

随着科技的不断进步和人们生活水平的提高,越来越多的服务开始向线上转型。传统的上门服务业也不例外,随着上门服务小程序的兴起,人们的生活变得更加便捷和高效。本文将为大家介绍上门服务小程序的搭建流程以及应用范围。 一、上门服务小程序搭…

知名专业定制线缆生产源头工厂推荐-精工电联:线缆行业的质量与成本双赢

知名专业定制线缆生产源头工厂推荐-精工电联 在当今科技飞速发展的时代,企业要想在激烈的市场竞争中立于不败之地,必须具备高质量、高效率、低成本的核心竞争力。作为线缆制造领域的领先者,精工电联始终秉持“与智者同行,与制造为…

“AI技能,新的职场通行证?揭秘阿里最新职业趋势报告“

随着“五一”劳动节的临近,阿里巴巴发布了一份引人注目的报告——《“AI”职业趋势报告》。这份报告不仅揭示了人工智能(AI)在各行各业中的关键作用,也预示了一个全新的工作时代正在加速到来。 报告中明确指出,AI的应用…

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(四)分组多查询注意力

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(四)分组多查询注意力 Grouped-query Attention,简称GQA 分组查询注意力(Grouped-query Attention,简称GQA)是多查询和多头注意力的插值…

栈和队列OJ——括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列

题目1——括号匹配问题 题目来源. - 力扣(LeetCode) 思路——辅助栈法 括号匹配问题是一个经典的计算机科学问题,常用于检查一个字符串中的括号是否正确匹配。这包括各种括号,如小括号“()”,大括号“{}”&#xff0…