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

news2024/9/19 10:55:25

文章目录

    • 一.概要
    • 二.单片机型号命名规则
    • 三.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.coloradmin.cn/o/2146124.html

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

相关文章

球类目标检测系统源码分享

球类目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

IOS 26 实现歌单详情(UITableView)列表 ③

歌单详情完整效果 歌单列表分组头部效果 本节是在文章 IOS 25 实现歌单详情(UITableView)列表② 的基础上,实现歌单列表分组头部View。当歌单列表滑动头部View至顶部时,头部View不会因列表滑动而消失,会一直显示在顶部…

2024.9.18

1.已知网址www.hqyj.com截取出网址的每一个部分 菜单栏中 ----> 虚拟机 -----> 设置 -----> 网络适配器 选择桥接模式 菜单栏中 ----> 编辑 -----> 虚拟网络编辑器 更改设置 将桥接改成自动 如果桥接连不上网 尝试还原默认设置后,在重新连接桥接…

微信小程序的学生选课系统--论文源码调试讲解

第二章 开发技术介绍 此次管理系统的关键技术和架构由B/S结构、java和mysql数据库,是本系统的关键开发技术,对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。 2.1 系统开发平台 在该在线微信小程序的学生选课系统…

动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct

动手学习RAG: 向量模型动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习动手学习RAG:rerank模型微调实践 bge-reranker-v2-m3动手学习RAG:迟交互模型colbert微调实践 bge-m3动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct动手学…

JavaScript高级——内存溢出和内存泄漏

1、闭包的缺点与解决方法 (1)缺点:函数执行完后,函数内的局部变量没有释放,占用内存时间会变长。 容易造成内存泄漏。 (2)解决:能不用闭包就不用。 及时释放。 2、内存溢出 ① 一…

Linux进阶 查看系统进程

操作系统中进程的生命周期是: 创建进程,(服务启动或软件的启动)进行运行状态进程等待状态进行唤醒进程结束一般主要关注是进行中间的三种状态,三种状态之间装换关系如下: 1、就绪状态:表示进程已经做好了运行的准备状态,只要获得内存空间,就可以立即执行。 2、阻塞状态:…

Maya---机械模型制作

材质效果(4)_哔哩哔哩_bilibili 三角面 四边面 多边面 *游戏允许出现三角面和四边面 游戏中一般是低模(几千个面) 动漫及影视是高模 机械由单独零件组合而成,需独立制作 低面模型到高面模型 卡线是为了将模型保…

电脑怎么设置开机密码?3个方法迅速搞定!

电脑已经成为了我们日常办公与学习的重要工具,其中保存有很多重要且需保密的资料,为电脑设置开机密码则是保护资料安全的第一步。那么,电脑怎么设置开机密码呢?今天,小编就为大家介绍3个设置电脑开机密码的方法&#x…

深度学习对抗海洋赤潮危机!浙大GIS实验室提出ChloroFormer模型,可提前预警海洋藻类爆发

2014 年 8 月,美国俄亥俄州托莱多市超 50 万名居民突然收到市政府的一则紧急通知——不得擅自饮用自来水! 水是人类生存的基本供给,此通告关系重大,发出后也引起了不小的恐慌。究其原因,其实是美国伊利湖爆发了大规模…

油烟机制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

油烟机制造5G智能工厂物联数字孪生平台,是智能制造与信息技术的深度融合产物。数字孪生工业互联平台通过部署在工厂各个环节的传感器和设备,实时采集、分析和处理生产过程中的海量数据,构建出高度逼真的数字孪生模型。这一模型不仅能够真实反…

基于树莓派ubuntu20.04的ros-noetic小车

目录 一、小车的架构 1.1 总体的概述 1.2 驱动系统 1.3 控制系统 二、驱动系统开发 2.1 PC端Ubuntu20.04安装 2.2 树莓派Ubuntu20.04安装 2.3 PC端虚拟机设置静态IP 2.4 树莓派设置静态IP 2.5 树莓派启动ssh进行远程开发 2.5 arduino ide 开发环境搭建 2.5.1 PC…

深入探索Docker核心原理:从Libcontainer到runC的演化与实现

随着容器技术的发展,Docker从早期的Libcontainer逐步演化到runC,推动了容器运行时的标准化进程。Libcontainer是Docker容器的核心管理工具,而runC则在此基础上发展成为符合OCI(Open Container Initiative)标准的轻量级…

Vue常用PC端和移动端组件库、Element UI的基本使用(完整引入和按需引入)

目录 1. Vue常用PC端和移动端组件库2. Element UI的基本使用2.1 完整引入2.2 按需引入 1. Vue常用PC端和移动端组件库 提供常用的布局、按钮、输入框、下拉框等UI布局,以组件的形式提供。使用这些组件,结构、样式、交互就都有了 移动端常用UI组件库 Van…

windows10 修改默认输入法

右键桌面,选择个性化 左侧搜索 语言 选择编辑语言和键盘选项 点击键盘 默认替代输入法 选择你想要设置的。重启电脑。如下图

C语言18--头文件

头文件的作用 通常,一个常规的C语言程序会包含多个源码文件(.c),当某些公共资源需要在各个源码文件中使用时,为了避免多次编写相同的代码,一般的做法是将这些大家都需要用到的公共资源放入头文件&#xff…

光学超表面在成像和传感中的应用

光学超表面已成为解决笨重光学元件所带来的限制,极具前景的解决方案。与传统的折射传播技术相比,它们提供了一种紧凑、高效的光操纵方法,可对相位、偏振和发射进行先进的控制。本文概述了光学超表面、它们在成像和传感技术中的各种应用以及这…

Broadcast:Android中实现组件与进程间通信

目录 一,Broadcast和BroadcastReceiver 1,简介 2,广播使用 二,静态注册和动态注册 三,无序广播和有序广播 1,有序广播的使用 2,有序广播的截断 3,有序广播的信息传递 四&am…

力扣(LeetCode)每日一题 1184. 公交站间的距离

题目链接https://leetcode.cn/problems/distance-between-bus-stops/description/?envTypedaily-question&envId2024-09-16 环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i …

Python燃烧废气排放推断算法模型

🎯要点 宏观能耗场景模型参数化输入数据,分析可视化输出结果,使用场景时间序列数据模型及定量和定性指标使用线图和箱线图、饼图、散点图、堆积条形图、桑基图等可视化模型输出结果根据气体排放过程得出其时间序列关系,使用推断模…