本帖最后由 正点原子运营 于 2024-5-31 17:50 编辑
第二章STM32简介
1)实验平台:正点原子 精英STM32F103开发板
2) 章节摘自【正点原子】STM32F103开发指南 V1.3
3)购买链接:https://detail.tmall.com/item.htm?&id=609294889447
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boar ... 103_jingyingV2.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子STM32技术交流QQ群:672399978
本章,我们将向大家介绍STM32是一个什么东西?有哪些资源?能够做什么?如何选型?等基础知识,让大家对STM32有一个大概了解。 本章将分为如下几个小节: 2.1 初识STM32 2.2 STM32F103资源简介 2.3 STM32F103设计选型
2.1 初识STM322007年6月,ST在北京发布了全球第一款基于ARM Cortex M3内核的32位通用微控制器芯片:STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到2020年6月,STM32累计出货量超过45亿颗。 精英开发板使用的STM32F103ZET6芯片如图2.1.1所示: 图2.1.1 STM32F103ZET6芯片(LQFP144脚) 上图中,左侧是STM32F103ZET6芯片,右侧则是芯片开盖后的图片,即芯片内部视图,可以看到外观看上去平平无奇,但是内部是有很多东西的,需要我们花很多时间和精力去学习掌握。 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的性能对比如表2.1.1所示: 这里我们选的51是性能比较好的STC15系列做为对比,如果换成传统51,速度会比STC15慢12倍左右。最强H7的DMIPS性能约为STC15的30倍,即便是STM32F103也大概有STC15性能的3倍,由此可见STM32的强大,而且最便宜的STM32F103,价格大概在5块多人民币,和STC15系列的价格差不多。 简单来说是,价格差不多的情况下,51能做的,STM32都能做,51不能做的,STM32也能做,因此,越来越多的企业选择使用STM32替代51,所以,大家如果能学会STM32,找工作的时候,也会有一定的优势。 2.2 STM32F103资源简介 下面来看看STM32F103ZET6具体的内部资源如表2.2.1所示: 表2.2.1 STM32F103ZET6内部资源表 由表可知,STM32内部资源还是非常丰富的,本书将针对这些资源进行详细的使用介绍,并提供丰富的例程,供大家参考学习,相信经过本书的学习,您会对STM32F103有一个全面的了解和掌握。 关于STM32F103内部资源的详细介绍,请大家参考光盘àA盘à7,硬件资料à2,芯片资料àSTM32F103ZET6.pdf,该文档即STM32F103的数据手册,里面有STM32F103详细的资源说明和相关性能参数。 2.3 STM32F103设计选型STM32从2007年推出至今,已经有18个系列,超过1000个型号,为了方便大家选择合适的型号设计产品,本节给大家讲讲STM32的设计选型。 2.3.1 STM32系列STM32目前总共有5大类,18个系列,如表2.3.1.1所示: 可以看到,STM32主要分两大块,MCU和MPU,MCU就是我们常见的STM32微控制器,不能跑Linux,而MPU则是ST在19年才推出的微处理器,可以跑Linux。本书重点介绍MCU产品,战舰使用的STM32F103ZET6属于主流MCU分类里面的基础型F1系列。 STM32 MCU提供了包括:基础入门、混合信号、高性能、超低功耗和无线等5方面应用的产品型号,我们可以根据自己的实际需要选择合适的STM32来设计。比如,我们的产品对性能要求比较高,则可以选择ST的高性能MCU,包括:F2、F4、F7、H7等4个系列的产品;又比如想做超低功耗,则可以选择ST的超低功耗MCU,L系列的产品。 表2.3.1.1中加粗的系列,正点原子都有相应的开发板,包括:主流级F1、高性能F4/F7/H7、超低功耗L4和微处理器MP1,大家可以根据自己的需要选择合适的正点原子开发板进行学习。 由于STM32系列有很好的兼容性,我们只要能够熟练掌握其中一任何一款MCU,就可以很方便的学会并使用其他系列的MCU。比如学好了STM32F103,再去学F4/F7/H7就比较容易学会,由于STM32F103系列最早推向市场,资料和教程都是最多的,在市场上的使用也是最为广泛,所以对于没有接触过STM32的初学者来说,我们强烈建议先学习STM32F103,再去学习其他的STM32系列。 2.3.2 STM32命名STM32的命名规则如图2.3.2.1所示: 图2.3.2.1 STM32 MCU命名规则(摘自STM32产品选型手册) 如图所示,STM32的产品名字里面包含了:家族、类别、特定功能、引脚数、闪存容量、封装、温度范围等重要信息,这些信息可以帮助我们识别和区分STM32不同芯片。 精英开发板使用的STM32F103ZET6,从命名就可以知道如表2.3.2.1所示信息: 表2.3.2.1 STM32F103ZET6型号说明 任何STM32型号,都可以按图2.3.2.1所示命名规则进行区分解读。 2.3.3 STM32选型了解了STM32的系列和命名以后,我们再进行STM32选型就会比较容易了,这里我们只要遵循:由高到低,由大到小 的原则,就可以很方便的完成设计选型了,具体如下: 由高到低原则:在不能评估项目所需性能的时候,可以考虑先选择高性能的STM32型号进行开发,比如选择F4/F7/H7等,在高性能STM32上面完成关键性能(即最需要性能的代码)开发验证,如果满足使用要求,则可以降档,如从H7àF7àF4àF1,如不满足要求,则可以升档,如从F4àF7àH7,通过此方法找到最佳性价比的STM32系列。 由大到小原则:在不能评估项目所需FLASH大小、SRAM大小、GPIO数量、定时器等资源需求的时候,可以考虑先选择容量较大的型号进行开发,比如选择512K/甚至1M FLASH的型号进行开发,等到开发完成大部分功能之后,就对项目所需资源有了定论,从而可以根据实际情况进行降档选择(当然极少数情况可能还需要升档),通过此方法,找到最合适的STM32型号。 整个选型工作大家可以在正点原子开发板上进行验证,一般我们开发板都是选择容量比较大/资源比较多的型号进行设计的,这样可以免去大家自己设计焊接验证板的麻烦,加快项目开发进度。一些资深工程师,对项目要求认识比较深入的话,甚至都不需要验证了,直接就可以选出最合适的型号,这个效率更高。当然这个需要长期积累和多实践,相信只要大家多学习,多实践,总有一天也能达到这个级别。 2.3.4 STM32设计这里我们简单给大家介绍一下STM32的原理图设计,上一节我们通过选型原则可以确定项目所需的STM32具体型号,但是在选择型号以后,需要先设计原理图,然后再画PCB、打样、焊接、调试等步骤。这里我们重点介绍如何设计STM32F103的原理图。 任何MCU部分的原理图设计,其实都遵循:最小系统 + IO分配 的设计原则。在开始设计原理图之前,我们要通读一遍对STM32F103原理图设计非常有用的手册:STM32F103的数据手册,可以说不看这个数据手册,我们就无法设计STM32F103原理图。 1. 数据手册在设计STM32F103原理图的时候,我们需要用到一个非常重要的文档:STM32F103数据手册,里面对STM32F103的IO定义和说明有非常详细的描述,是我们设计原理图的基础。战舰开发板所使用的STM32F103ZET6芯片数据手册,存放在:A盘à 7,硬件资料à2,芯片资料à STM32F103ZET6.pdf / STM32F103ZET6(中文版).pdf,接下来我们简单介绍一下如何使用该文档。 STM32F103ZET6.pdf 是最新的英文版(V13)STM32数据手册 STM32F103ZET6(中文版).pdf 是中文版(V5)STM32数据手册 大家可以根据自己的喜欢来选择合适的版本进行阅读,内容上基本大同小异,从准确性全面性的角度来说,看V13英文版是最好的,从简单,易懂来说,看V5中文版也是可以的。 STM32F103ZET6.pdf数据手册是针对大容量系列(FLASH容量在256KB~512KB之间),主要包括8个章节,如表2.3.4.1所示: 表2.3.4.1 STM32F103数据手册各章节内容概要 整个STM32F103数据手册,对我们开发学习STM32来说都比较重要,因此建议大家可以简单的通读一遍这个文档,以加深印象。对于原理图设计,最重要的莫过于引脚定义这一章节了,只有知道了STM32的引脚定义,才能开始设计原理图。 STM32F103ZET6引脚分布如图2.3.4.1所示: 图2.3.4.1 STM32F103ZET6芯片引脚分布(摘自STM32F103数据手册) STM32F103ZET6引脚定义如表2.3.4.2所示: 表2.3.4.2 STM32F103ZET6芯片引脚定义(部分)(摘自STM32F103数据手册) 引脚定义表的具体说明如表2.3.4.3所示: 了解了引脚分布和引脚定义以后,我们就可以开始设计STM32F103的原理图了。 2. 最小系统最小系统就是保证MCU正常运行的最低要求,一般是指MCU的供电、复位、晶振、BOOT等部分。STM32F103的最小系统需求如表2.3.4.4所示: 完成以上引脚的设计以后,STM32F103的最小系统就完成了,关于这些引脚的实际原理图,大家可以参考我们精英开发板的原理图。接下来就可以开始进行IO分配了。 3. IO分配IO分配就是在完成最小系统设计以后,根据项目需要对MCU的IO口进行分配,连接不同的器件,从而实现整体功能。比如:GPIO、IIC、SPI、SDIO、FSMC、USB、中断等。遵循:先分配特定外设IO,再分配通用IO,最后微调的原则,见表2.3.4.5所示: 经过以上几个步骤,我们就可以完成STM32F103的原理图设计了。
|