嵌入式开发一:初识Stm32

目录

一、嵌入式简介

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有个大概的认识,后面会逐步介绍每个外设的固件库使用方法,如有兴趣,感谢点赞、关注、收藏,若有不正地方,还请各位大佬多多指教!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

将图片添加描述批量写入excel

原始图片 写入excel的效果 代码 # by zengxy chatgpt # from https://blog.csdn.net/imwatersimport os import xlsxwriter from PIL import Imageclass Image2Xlsx():def __init__(self,xls_path,head_list[编号, 图片, 名称, "描述",备注],set_default_y112,se…

Java毕业设计 基于SpringBoot vue城镇保障性住房管理系统

Java毕业设计 基于SpringBoot vue城镇保障性住房管理系统 SpringBoot 城镇保障性住房管理系统 功能介绍 首页 图片轮播 房源信息 房源详情 申请房源 公示信息 公示详情 登录注册 个人中心 留言反馈 后台管理 登录 个人中心 修改密码 个人信息 用户管理 房屋类型 房源信息管理…

Eudic欧路词典for Mac:专业英语学习工具

Eudic欧路词典for Mac,作为专为Mac用户设计的英语学习工具,凭借其简捷高效的特点,成为众多英语学习者不可或缺的助手。 Eudic欧路词典for Mac v4.6.4激活版下载 这款词典整合了多个权威词典资源,如牛津、柯林斯、朗文等&#xff0…

2024 java easyexcel poi word模板填充数据,多个word合成一个word

先看效果 一、准备工作 1.word模版 2.文件路径 二、pom依赖 <!-- easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version></dependency><depe…

基于微信小程序云开发实现考研题库小程序V2.0

不久之前&#xff0c;基于云开发的微信答题小程序搭建题库小程序V1.0&#xff0c;软件架构是微信原生小程序云开发。现在来回顾一下&#xff0c;已经实现的功能。 一、V1.0项目预览 1、页面结构 首页 答题页 结果页 我的页 排行榜页 答题历史页 登录页 使用指引页 2…

制造型企业 如何实现便捷的机台文件统一管理?

机台文件统一管理&#xff0c;这是生产制造型企业都需要去做的&#xff0c;机台文件需要统一管理的原因主要包括以下几点&#xff1a; 1、提高效率&#xff1a;统一管理可以简化文件的访问和使用过程&#xff0c;提高工作效率&#xff0c;尤其是在需要频繁访问或更新机台文件的…

【AIGC调研系列】大型语言模型如何减少幻觉生成

在解读大型语言模型&#xff08;LLMs&#xff09;中的长格式事实性问题时&#xff0c;我们首先需要认识到这些模型在生成内容时可能会产生与既定事实不一致的情况&#xff0c;这种情况通常被称为“幻觉”[2][3]。这种现象不仅可能导致信息的误传&#xff0c;还可能对社会造成误…

FORM调用标准AP\AR\GL\FA界面

EBS FORM客户化界面有时候数据需要追溯打开AP\AR\GL\FA等界面&#xff1a; 一种打开日记账的方式&#xff1a; PROCEDURE SHOW_JOURNAL ISparent_form_id FormModule;child_form_id FormModule; BEGINclose_jrn;parent_form_id : FIND_FORM(:SYSTEM.CURRENT_FORM);COPY(TO…

HWOD:蛇形矩阵

一、知识点 忽略蛇形矩阵本身的定义1,2,3,4,5,6&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c; 而是从它的输出图形上找规律 二、题目 1、描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 例如&#xff0c;当输入5时&#xf…

Magnet for Mac:高效窗口管理工具

Magnet for Mac是一款专为Mac用户设计的窗口管理工具&#xff0c;旨在帮助用户更高效地管理和布局多个应用程序窗口&#xff0c;提升工作效率。 Magnet for Mac v2.14.0中文免激活版下载 这款软件拥有直观易用的界面和丰富的功能&#xff0c;支持用户将屏幕分割成多个区域&…

【UE5】蓝图通信方式

目录 1、直接通信 2、getAllActorsOfClass 3、getAllActorsOfClassWithTag 4、通过射线检测 5、接口 6、事件分发器 7、SpawnActor 8、调用控制台命令 9、关卡蓝图中直接调用 创建两个Actor蓝图 1、直接通信 场景中 2、getAllActorsOfClass 3、getAllActorsOfClassWit…

如何实现直播声卡反向给手机充电功能呢?

在数字化时代的浪潮中&#xff0c;声卡作为多媒体系统的核心组件&#xff0c;扮演着声波与数字信号相互转换的关键角色。它不仅能够将来自各类音源的原始声音信号转换为数字信号&#xff0c;进而输出到各类声响设备&#xff0c;更能够通过音乐设备数字接口(MIDI)发出合成乐器的…

MySQL 数据库远程访问问题

在默认的情况下&#xff0c;MySQL 是不能远程访问的&#xff0c;当我们修改了用户名可以接受远程访问后&#xff0c;还是没有办法接受远程访问。 还有一个配置的地方需要验证。 mysqld.cnf 配置文件 mysqld.cnf 配置文件对访问的地址可能会有限制。 配置文件的地址为&#…

杰发科技AC7840——ADC简介(1)_双路ADC同时使用

0. 简介 1. 特性 2. 双路ADC Sample里面没有双路的&#xff0c;以为那个规则组只有一个通道&#xff0c;看了外设寄存器才发现&#xff0c;原来他的通道是双路的。 注意1: ADC硬件引脚的配置 注意2: 规则组长度设置和 RSEQ序列号和CH通道号组合应该就对应了转换顺序&#xff0…

服务器防护哪家好

在当前的网络安全环境中&#xff0c;服务器防护已经成为企业和个人防御网络威胁的重要一环。选择一个高效且可靠的服务器防护方案是至关重要的。今天我们来看一下为什么安全狗的服务器防护哪家好呢&#xff0c;一起来看看安全狗服务器防护的介绍吧。 首先&#xff0c;安全狗提供…

读天才与算法:人脑与AI的数学思维笔记11_算法如何思考

1. 创造力 1.1. 创建一种算法&#xff0c;其首要任务是放弃已知的所有艺术风格&#xff0c;然后判断由算法自己所产生的艺术品是否具有与所有艺术风格都截然不同的特性&#xff0c;即真正独树一帜的艺术风格 1.2. 抗性模型同样适用于人类创造力代码的引导 1.3. 神经科学家的…

网盘——进入文件夹

本文主要讲解网盘的文件操作中进入文件夹的部分&#xff0c;具体实现步骤如下&#xff1a; 1、具体步骤如下&#xff1a; A、客户端发送进入文件夹的请求&#xff08;该请求包含目录信息以及要进入的文件夹名字&#xff09; B、服务器收到该请求之后&#xff0c;服务器首先判…

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

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

mac安装java

在 macOS 上配置 Java 环境变量是相对简单的。你需要做的是设置 JAVA_HOME 环境变量&#xff0c;并将 bin 目录添加到 PATH 变量中。本篇是最详细的教程&#xff0c;细化每个步骤过程&#xff0c;保姆级的教程&#xff01; 1. 下载JDK安装包 到oracle官网下载适合的JDK安装包…

阿里巴巴瓴羊基于 Flink 实时计算的优化和实践

摘要&#xff1a;本⽂整理⾃阿里云智能集团技术专家王柳焮⽼师在 Flink Forward Asia 2023 中平台建设专场的分享。内容主要为以下四部分&#xff1a; 阿里巴巴瓴羊基于 Flink 实时计算的平台演进Flink 能力优化与建设基于 Flink 的最佳实践未来规划 1. 阿里巴巴瓴羊基于 Flink…