初识 STM32

2007 年 6 月,ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制
器芯片:STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣
惊人,一发不可收拾,截止到 2020 年 6 月,STM32 累计出货量超过 45 亿颗。
战舰开发板使用的 STM32F103ZET6 芯片如图 2.1.1 所示:

STM32 的优异性体现在如下几个方面:

1,超低的价格。8 位机的价格,32 位机的性能,是 STM32 最大的优势。
2,超多的外设。STM32 拥有包括:FMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、
ADC、DAC、RTC、DMA 等众多外设及功能,具有极高的集成度。
3,丰富的型号。STM32 仅 M3 内核就拥有 F100、F101、F102、F103、F105、F107、F207、
F217 等 8 个系列上百种型号,具有 QFN、LQFP、BGA 等封装可供选择。同时 STM32 还推出
了 STM32L 和 STM32W 等超低功耗和无线应用型的 M3 芯片,另外,ST 还推出了
STM32F4/F7/H7 等更高性能的芯片。
4,优异的实时性能。150 个中断,16 级可编程优先级,并且所有引脚都可以作中断输入。
5,杰出的功耗控制。STM32 各个外设都有自己的独立时钟开关,可以通过关闭相应外设
的时钟来降低功耗。
6,极低的开发成本。通过串口即可下载程序,而且相应的仿真器也很便宜,支持
JTAG&SWD 调试接口,最少仅 2 个 IO 口即可实现仿真调试,极大的降低了开发成本。

STM32 与 51 的性能对比:

STM32 系列

STM32 目前总共有 5 大类,18 个系列


可以看到,STM32 主要分两大块,MCU 和 MPU,MCU 就是我们常见的 STM32 微控制
器,不能跑 Linux,而MPU 则是 ST 在 19 年才推出的微处理器,可以跑 Linux。

STM32 命名

STM32 的命名规则

STM32 的产品名字里面包含了:家族、类别、特定功能、引脚数、闪存容量、
封装、温度范围等重要信息,这些信息可以帮助我们识别和区分 STM32 不同芯片。

STM32 选型

这里我们只要遵循:由高到低,由大到小 的原则

由高到低

由高到低原则:在不能评估项目所需性能的时候,可以考虑先选择高性能的 STM32 型号进
行开发,比如选择 F4/F7/H7 等,在高性能 STM32 上面完成关键性能(即最需要性能的代码)
开发验证,如果满足使用要求,则可以降档,如从 H7→F7→F4→F1,如不满足要求,则可以升
档,如从 F4→F7→H7,通过此方法找到最佳性价比的 STM32 系列。

由大到小

由大到小原则:在不能评估项目所需 FLASH 大小、SRAM 大小、GPIO 数量、定时器等资
源需求的时候,可以考虑先选择容量较大的型号进行开发,比如选择 512K/甚至 1M FLASH 的
型号进行开发,等到开发完成大部分功能之后,就对项目所需资源有了定论,从而可以根据实
际情况进行降档选择(当然极少数情况可能还需要升档),通过此方法,找到最合适的 STM32
型号。

整个选型工作大家可以在正点原子开发板上进行验证,一般我们开发板都是选择容量比较
大/资源比较多的型号进行设计的,这样可以免去大家自己设计焊接验证板的麻烦,加快项目开
发进度。一些资深工程师,对项目要求认识比较深入的话,甚至都不需要验证了,直接就可以
选出最合适的型号,这个效率更高。当然这个需要长期积累和多实践,相信只要大家多学习,
多实践,总有一天也能达到这个级别。

STM32 设计

任何 MCU 部分的原理图设计,其实都遵循:最小系统 + IO 分配 的设计原则。

STM32F407 资源简介

数据手册

在官网就可以下载:https://www.stmcu.org.cn/
STM32F407ZGT6.pdf 数据手册是针对 STM32F407 系列的数据手册,主要包括 8 个章节。

整个 STM32F407 数据手册,对我们开发以及学习 STM32 来说都比较重要,因此建议大家
可以简单的通读一遍这个文档,以加深印象。对于原理图设计,最重要的莫过于引脚定义这一
章节了,只有知道了 STM32 的引脚定义,才能开始设计原理图。

STM32F407ZGT6 具体的内部资源:

STM32F407ZGT6 引脚分布:

STM32F407ZGT6 引脚定义:

引脚定义表的具体说明

最小系统

最小系统就是保证 MCU 正常运行的最低要求,一般是指 MCU 的供电、复位、晶振、BOOT
等部分。STM32F407 的最小系统需求如表 2.3.4.4 所示:

完成以上引脚的设计以后,STM32F407 的最小系统就完成了,关于这些引脚的实际原理图,
大家可以参考我们探索者开发板的原理图。接下来就可以开始进行 IO 分配了。

IO 分配

IO 分配就是在完成最小系统设计以后,根据项目需要对 MCU 的 IO 口进行分配,连接不
同的器件,从而实现整体功能。比如:GPIO、IIC、SPI、SDIO、FSMC、USB、中断等。遵循:
先分配特定外设 IO,再分配通用 IO,最后微调的原则,见表 2.3.4.5 所示:

初识 STM32和STM32F407简介相关推荐

  1. 第9章 初识STM32固件库—零死角玩转STM32-F429系列

    第9章     初识STM32固件库 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  2. STM32 CAN控制器简介-寄存器简介

    1.CAN主控制寄存器(CAN_MCR) 该寄存器的我们仅介绍下INRQ位,该位用来控制初始化请求. 设置INRQ=0,可使CAN从初始化模式进入正常工作模式. 设置INRQ=1,可使CAN从正常工作 ...

  3. 《dojo 边学边用》(01), 初识dojo,dojo简介和框架概览

    <dojo 边学边用>(01), 初识dojo,dojo简介和框架概览       首先,我也是因为新的工作,需要用到dojo,之前一直是用jQuery,对dojo之前没有过接触.于是就准 ...

  4. 第4章 初识STM32—零死角玩转STM32-F429系列

    第4章     初识STM32 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...

  5. 【嵌入式开发-STM32】初识STM32

    [嵌入式开发-STM32]初识STM32 文章目录 [嵌入式开发-STM32]初识STM32 一.什么是STM32 二.STM32的拓展 三.如何确定STM32选型 3.1.STM32的命名方法 3. ...

  6. 从零打造一个机器人003【初识STM32单片机】

    从零打造一个机器人003[初识STM32单片机] 1.什么是单片机 单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处 ...

  7. 【STM32】SPI简介

    00. 目录 文章目录 00. 目录 01. SPI简介 02. SPI特性 03. SPI功能说明 04. SPI中断 05. 相关寄存器 5.1 SPI 控制寄存器 1 (SPI_CR1) (不用 ...

  8. linux stm32 主从,STM32F407和STM32F051主从I2C通信方法

    STM32F407和STM32F051主从I2C通信方法 作者:华清远见讲师 M4作为主机: int main(void) { HAL_Init(); SystemClock_Config(); MX ...

  9. 【STM32】FreeRTOS简介

    00. 目录 文章目录 00. 目录 01. 什么是FreeRTOS 02. 为什么选择FreeRTOS 03. FreeRTOS特点 04. FreeRTOS商业许可 05. 预留 06. 附录 0 ...

最新文章

  1. class反编译成java_Spring Tools Suite(STS)安装反编译插件
  2. 重装系统后需要安装的软件
  3. linux设备驱动归纳总结(六):2.分享中断号【转】
  4. Angular Component 实现类,先执行字段初始化,再调用构造函数
  5. 关于Excel中的F2键(知道了,会对Excel的操作非常方便)。
  6. spark算子的分类
  7. esp8266 SOC方案经过半年沉淀之后再度重启二
  8. Android是如何绘制View的
  9. 联想台式机进入修复计算机,联想台式机一键恢复的使用方法
  10. java连接微信发送给好友信息,微信消息转发以及给指定好友发送消息
  11. 计算机操作系统 共享性,计算机操作系统的功能和分类探析
  12. JAVA快递单号查询接口对接教程【快递鸟DEMO】
  13. CS231n学习笔记-损失函数、损失函数与梯度下降
  14. UVA 12663 第九届省赛 高桥与低桥 线段树
  15. Introduce Python to data sience/Python 在数据科学中的应用
  16. 千锋逆战班学员教你从零基础了解HTML5的知识
  17. 程序员的数学基础课 二进制(自我提升第6天)
  18. numpy.mat和numpy.matrix的区别
  19. Python 视频编辑教程之用几行 Python 代码自动创建 NBA 集锦,利用开源计算机视觉模型生成篮球亮点
  20. 医院云存储服务器项目背景,医疗影像云存储解决方案

热门文章

  1. Java8新特性——Optional 类
  2. 树莓派串口通信编码_树莓派3B 串口通信超详细
  3. 博客项目学习笔记十二:登录注册功能(登录)
  4. OpenInfra Days China 2020大会议程已上线,快来报名参加!
  5. python+appium自动化测试获取短信+图片验证码
  6. Axon Framework官方文档(五)
  7. Apache HttpClient连接池泄露问题排查
  8. v免签对接易支付插件(已测试)
  9. 计算机无法设置双屏显示,电脑双屏显示怎么设置?
  10. RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播方案EasyNVR出现操作和画面显示不一致问题如何优化?