STM32F407单片机开发入门(二)STM32F407VET6单片机详解

文章目录

    • 一.概要
    • 二.单片机型号命名规则
    • 三.STM32F407系统架构
    • 四.STM32F40VET6单片机启动流程
    • 五.STM32F40VET6单片机主要外设资源
    • 六.开发过程中查看芯片数据手册的必要性
      • 1.单片机外设资源情况
      • 2.STM32F407单片机内部框图
      • 3.STM32F407单片机管脚图
      • 4.STM32F407单片机每个管脚功能
      • 5.单片机功耗数据
      • 6.FLASH编程时间,擦写次数
      • 7.I/O特性表格
      • 8.外设接口最大速度
      • 9.芯片供电电压范围
    • 七.STM32F407VET6单片机应用场景
    • 八.总结

一.概要

单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU内核、随机存储器SRAM、存储器FLASH、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

STM32F407VET6单片机是ST公司基于ARM Cortex-M4内核开发的32位微控制器。

STM32F407VET6单片机主要特性
内核:ARM Cortex-M4
主频:168MHz系统主频,STM32F103主频是72MHz,STM32F407主频高很多。
RAM:192k(SRAM)
ROM:512k(Flash)
供电:2.0~3.6V(标准3.3V)

芯片实物图如下:
在这里插入图片描述

芯片引脚定义如下:

在这里插入图片描述

二.单片机型号命名规则

根据命名规则,STM32F407VET6就是高性能带DSP与FPU,100脚,512K闪存,LQFP贴片封装,-40~85度的工业级的单片机。

在这里插入图片描述

三.STM32F407系统架构

在这里插入图片描述

如图所示,左上角为内核(ARM Cortex-M4 168MHz),I-Code,S-Code和D-Code主要通过AHB总线连到Flash闪存,SRAM等。

在这里插入图片描述

Cortex‐M4内核:
ARM Cortex-M4内核,具有高性能、低功耗的特点。Cortex-M4内核采用了Thumb-2指令集,支持16位和32位指令,具有较高的运算能力和代码密度。此外,Cortex-M4内核还具有浮点单元(FPU)、数字信号处理(DSP)和内存保护等功能,能够满足各种嵌入式应用的需求。

FLASH闪存:
我们编写好的程序经过Keil5编译之后都是一条条指令,存放在FLASH中。内核(ARM Cortex-M4)通过I-Code总线来取里边的指令,所以FLASH主要是用来存程序,但也开放一部分空间可以存数据。

SRAM存储器:存放程序运行时的变量数据。

I-BUS总线:
此总线用于将 Cortex-M4 内核的指令总线连接到总线矩阵。内核通过此总线获取指令。
此总线访问的对象是包含代码的存储器(内部 Flash/SRAM 或通过 FSMC 的外部存储器)。

D-BUS总线:
此总线用于将 Cortex-M4 数据总线和 64 KB CCM 数据 RAM 连接到总线矩阵。内核通过
此总线进行立即数加载和调试访问。此总线访问的对象是包含代码或数据的存储器(内部Flash 或通过 FSMC 的外部存储器)。

S-BUS总线:
此总线用于将 Cortex-M4 内核的系统总线连接到总线矩阵。此总线用于访问位于外设或 SRAM 中的数据。

APB2,APB1系统总线:
用于挂载外设(GPIO、USART、I2C、SPI等这些外设)(APB2频率最高可以到84MHz,APB1最高只能到42MHz)。

System总线主要是用来访问外设寄存器,我们通常说的寄存器编程,即读写寄存器都是通过System总线来完成的。

DMA总线:可以用来传输数据,这个数据可以是某个外设的数据寄存器,也可以是SRAM或者FLASH中的数据。

四.STM32F40VET6单片机启动流程

通过单片机BOOT0引脚与BOOT1引脚的电平高低组合,配置单片机启动模式

在这里插入图片描述
我们一般都用下拉电阻配置BOOT0引脚为低电平,单片机的SWD下载口用下载器下载完代码,程序就能直接运行,这是最常用的启动模式。

STM32F40VET6单片机从FLASH的启动流程:
当芯片上电后采样到 BOOT0 引脚为低电平时,0x00000000 和 0x00000004 地址被映射到内部 FLASH 的首地址 0x08000000 和 0x0800 0004。因此,内核离开复位状态后,读取内部 FLASH 的 0x08000000 地址空间存储的内容,赋值给栈指针 MSP,作为栈顶地址,再读取内部 FLASH 的 0x08000004 地址空间存储的内容,赋值给程序指针 PC,作为将要执行的第一条指令所在的地址。完成这两个操作后,内核就可以开始从 PC 指向的地址中读取指令执行了,0x0800 0004是中断向量表的起始地址,这就是复位程序的入口地址,接着跳转到复位程序入口处,初始向量表,然后设置时钟,设置堆栈,最后跳转到main函数,即进入用户程序。

五.STM32F40VET6单片机主要外设资源

STM32F40VET6单片机集成了丰富的外设,比如GPIO,定时器,SPI,USART,CAN,USB,ADC,以太网等外设,这些丰富的外设能驱动很多各种接口的传感器,很多时候编程的工作也是对这些外设进行驱动编程。

红色圈出来的就是STM32F40VET6单片机外设资源:
在这里插入图片描述
STM32F40VET6单片机跟STM32F103C8T6单片机相比,多了 FSMC memory controller(存储器扩展),Ethernet(以太网),USB OTG,Camera interface(摄像头接口),12-bit DAC等外设。

六.开发过程中查看芯片数据手册的必要性

在编程的过程中,会经常查看一些资料,比如芯片数据手册会经常用到,作用比较大,主要需要查看哪几点,下面做个简单介绍:

1.单片机外设资源情况

编程的时候会了解是否存在这个外设,外设数量是否正确,FLASH的大小,RAM的大小,空间是否会超,需要查看确认。

在这里插入图片描述
在这里插入图片描述

2.STM32F407单片机内部框图

有时候需要知道某个外设是挂在哪个总线(APB1还是APB2)下面,最高主频多少,是否存在这个外设等信息,需要查看这个单片机框图。
在这里插入图片描述
在这里插入图片描述

3.STM32F407单片机管脚图

在代码的调试过程中,有时候需要确认硬件是否连接正确,就需要知道单片机相应引脚的定义。
在这里插入图片描述

4.STM32F407单片机每个管脚功能

在写代码过程中,需要知道这个引脚的基本功能,是否5V容忍(可以输入5V高电平),可以复用配置成哪个外设,是否有附加功能等,需要查看这表格。

在这里插入图片描述
管脚复用功能表格,比如PC3引脚要想配置成SP2_MOSI,GPIOx_AFRL寄存器就得配置成AF5。
在这里插入图片描述

5.单片机功耗数据

在某些低功耗项目场景,需要知道配置成哪个低功耗模式更省电,不同主频功耗能符合功耗要求,需要查看这表格。

在这里插入图片描述

在这里插入图片描述

6.FLASH编程时间,擦写次数

在FLASH的存储操作中,需要知道编程时间,保证数据能正确写入,需要知道擦写次数,保证芯片不会因为擦写过多而损坏。
在这里插入图片描述

7.I/O特性表格

在I/O读取操作时,有些电压采集到的不是高电平或者低电平,需要查这表格确认读到的电压符合单片机读到的高低电平电压要求。
在这里插入图片描述
单片机的I/O都可以配置内部上拉下拉,上拉电阻,下拉电阻多大,一般都是40K,可以在这表格里查出来。
在这里插入图片描述

拉电流(输出电流),灌电流(输入电流)能力
在这里插入图片描述

8.外设接口最大速度

还有一些外设的最大速度,比如SPI,IIC口的最快速度也都能在芯片手册中找到。

IIC接口:
在这里插入图片描述
SPI接口:
在这里插入图片描述

USART接口:
在这里插入图片描述

9.芯片供电电压范围

STM32单片机一般都是3.3V供电,电压是否符合要求,要看芯片手册供电范围。
在这里插入图片描述

七.STM32F407VET6单片机应用场景

工业自动化:STM32F407VET6具有丰富的外设接口,如USART、SPI、I2C、以太网等,可以方便地与各种传感器和执行器进行通信和控制。在工业自动化领域,它可以用于实现各种控制逻辑、数据采集和通信等功能。

智能交通:STM32F407VET6可以用于智能交通系统的控制和管理。例如,它可以用于控制交通信号灯、监控道路状况、检测车辆违章等,提高交通效率和安全性。

医疗电子:STM32F407VET6具有高精度,主频高的特点,可以用于医疗电子设备的控制和监测。例如,它可以用于实现医疗设备的自动化控制、数据采集和传输等功能。

八.总结

在了解STM32F407VET6单片机大概的内部信息和特性之后,基于STM32F407VET6的开发板,配合STLINK下载调试器,在Keil 5软件的加持下就可以进行编程操作了。

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

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

相关文章

艾里斑(Airy Disk)与瑞利判据(Rayleigh criterion)

艾里斑的定义与形成 艾里斑(Airy Disk),又称艾里图样(Airy Pattern),是光通过圆形孔径发生衍射时,在焦点处形成的光斑。这一现象由英国数学家和天文学家George Biddell Airy在19世纪首次详细描…

Linux服务器中在指定python环境中新建notebook

在指定环境下建立新的IPython内核pip install ipykernel生成ipykernel的配置文件:python -m ipykernel install --user --name netCLR 其中--user是指在用户级别生成,如果没有--user就会在系统中安装,如果不是管理员的话就会没有权限生成&…

Acrobat XI 安装教程

软件介绍 Adobe Acrobat 是由Adobe公司开发的一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,可以以PDF格式制作和保存文档,以便于浏览和打印,同时还可以使用一些高级工具来创建、编辑…

MySQL练手题--公司和部门平均工资比较(困难)

一、准备工作 Create table If Not Exists Salary (id int, employee_id int, amount int, pay_date date); Create table If Not Exists Employee (employee_id int, department_id int); Truncate table Salary; insert into Salary (id, employee_id, amount, pay_date) va…

FreeRTOS—任务通知

一,概念介绍 队列、信号量、事件组等IPC技术都需要创建一个中间对象进程之间通过这些中间对象进行通讯或同步。创建对象就需要分配内存,占用一定内存。 二,任务通知的特点: 一个任务或ISR向另外一个指定的任务发送通知&#xff0c…

『功能项目』切换职业技能面板【49】

我们打开上一篇48切换职业面板的项目, 本章要做的事情是制作第二职业法师技能面板、第三职业面板并且完成切换 双击打开Canvas进入预制体空间 复制三个技能栏面板 重命名 设置第一技能栏 设置第二职业技能栏 设置第三职业技能栏 修改脚本:ChangeProfess…

Java设计模式—面向对象设计原则(五) ----->迪米特法则(DP) (完整详解,附有代码+案例)

文章目录 3.5 迪米特法则(DP)3.5.1 概述3.5.2 案例 3.5 迪米特法则(DP) 迪米特法则:Demeter Principle,简称DP 3.5.1 概述 只和你的直接朋友交谈,不跟“陌生人”说话(Talk only to your immediate friends and not to stranger…

华为CNA VRM搭建(使用vmware worfstartion搭建)

创建虚拟机: 自定义→高级 选择硬件兼容性:默认安装版本,如果未来想要将此虚拟机安装到其他电脑,其他电脑版本过低,此时可以向下兼容,这里我们默认版本 稍后安装操作系统: CNA采用Euler OS系统…

WebSocket vs. Server-Sent Events:选择最适合你的实时数据流技术

引言: 在当今这个信息爆炸的时代,用户对于网页应用的实时性要求越来越高。从即时通讯到在线游戏,再到实时数据监控,WebSocket技术因其能够实现浏览器与服务器之间的全双工通信而受到开发者的青睐。 WebSocket技术为现代Web应用…

数据结构——链表(短小精悍版)

使用链表结构可以克服数组链表需要预先知道数据大小的缺点 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。 单向链表: 一个…

更换YUM源

前言 yum -y install pcre-develCannot find a valid baseurl for repo: base/7/x86_64更换yum源 备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak下载yum源 这次选择阿里 阿里yum源仓库 替换更新 mv ~/Centos-7.repo /etc/yum.repos…

黑神话悟空:上架27天后,玩家群体分析

按9月13日的统计,仅在steam平台上,售出1900w份,约65亿人民币。 (游戏于2024年8月20日发售) 由于黑神话的关卡是线性的,即必须一关打过才能打下一关,和游戏的成就系统对应,所以可以…

【免费】CISSP官方习题集第4版

伴随2004年4月CISSP新大纲发布,CISSP官方习题集第4版(OPT v4)已于2024年5月出版: 本人维护的中英对照8个知识域分章节练习已同步更新完成,在保持v3版内容基础上,增补了所有v4新内容,免费供考友们使用,访问方…

漏洞复现-泛微-E-Cology-SQL

更多漏洞分析复现,可前往无问社区查看http://www.wwlib.cn/index.php/artread/artid/10358.html 0x01 产品简介 泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理和移动办公。 0x02 漏洞概述 泛微e-cology…

通信工程学习:什么是UNI用户网络接口

UNI:用户网络接口 UNI(User Network Interface)用户网络接口,是网络通信中的一个重要概念,它连接了用户设备与智能光网络或其他类型的网络。以下是关于UNI用户网络接口的详细解释: 一、定义与功能 定义&am…

YOLO学习笔记 | YOLO目标检测算法(YOLO-V2)

github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 YOLO-V2 V1与V2区别Batch Normalization更大分辨率YOLO-V2网络结构 V1与V2区别 V2更强更快 Batch Normalization 更大分辨率 YOLO-V2网络结构

类的定义和对象的使用

类的定义 类名:手机(Phone) 成员变量:品牌(brand),价格(price) 成员方法:打电话(calL),发短信(sendMessage) 调用类变量和方法

一键智能改写文章,快速提升内容的吸引力

在这个信息如潮水般涌来的时代,优质的内容创作成为了吸引眼球、传递价值的关键。而有时候,我们可能会面临着已有文章需要优化、旧内容需要焕发新活力的情况。此时,一键智能改写文章的工具就如同一位神奇的魔法师,它能帮助我们将文…

【Linux】调试和Git及进度条实现

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:Linux入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1.…

(CVPR-2022)感知优先的扩散模型训练

感知优先的扩散模型训练 Paper Title:Perception Prioritized Training of Diffusion Models Paper是首尔国立大学数据科学与人工智能实验室发表在CVPR 2022的工作 论文地址 Code地址 Abstract 扩散模型通过优化相应损失项的加权和(即去噪得分匹配损失&…