STM32 简介

1.STM32介绍

STM32是ST公司基于ARM Cortex-M内核(比如程序指令的执行,加减乘除的运算都是在内核里完成,相当于整个芯片的CPU)开发的32位微控制器(ST公司拿着ARM公司设计的内核,再完善外围电路,整个封装起来,就做成STM32)

目前STM32主要有四个系列:高性能系列、主流系列、超低功耗系列和无线系列

2.ARM

ARM既指ARM公司,也指ARM处理器内核
ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构
ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片

3.STM32F103C8T6

·系列:主流系列STM32F1
·内核:ARM Cortex-M3
·主频:72MHz
·RAM:20K(SRAM)
这里的RAM就是运行内存,实际的存储介质是SRAM
·ROM:64K(Flash)
这里的ROM是程序存储器,实际的存储介质是Flash闪存
·供电:2.0~3.6V(标准3.3V)
5V不在电压范围内,不能直接给STM32供电,若为5V电压,需要加一个稳压芯片,把电压降到3.3V,再给STM32供电
·封装:LQFP48

3.1 片上资源/外设(Peripheral)

其中深颜色的外设是位于Cortex-M3内核里面的外设,剩下的都是内核外的外设

RCC:在STM32中,其它的外设在上电的情况下默认是没有时钟的,不给时钟的情况下,操作外设是无效的。外设也不会工作,目的是降低功耗。所以在操作外设前必须要先使能它的时钟,这就需要RCC来完成时钟的使能。

3.2命名规则

3.3系统结构

ICode总想和Dcode总线主要是用来连接Flash闪存的,Flash里面存储的就是我们编写的程序,ICode指令总线就是用来加载程序指令的,DCode数据总线是用来加载数据的,比如常量和调试数据这些。System总线就连接到了这些其他东西,比如SRAM(用于存储程序运行时的变量数据),还有FSMC

AHB(先进高性能总线 )系统总线用于挂载主要的外设(最基本的或性能较高的外设:RCC、SDIO)。两个桥接接到了APB1和APB2两个外设总线上,APB意思为先进外设总线,用于连接一般的外设,因为AHB和APB的总线协议、总线速度、还有数据传送格式的差异,所有中间需要加两个桥接来完成数据的转换好缓存。AHB的整体性能比APB高,其中APB2的性能又比APB1高一些,APB2一般是和AHB同频率,都为72MHz,APB1一般为36MHz

DMA:当作内核COU的小秘书,有一些大量数据搬运的话,让CPU来干的话就太费时间。比如外设ADC模数转换,这个模数转换可以配置成连续模式,1ms转换一次,转换完的数据必须得转运出来,否则数据就会被覆盖丢失,如果直接由CPU来干这活,那CPU每过1ms就得来转运一下数据,会影响CPU的正常工作,而且这个活只是简单的数据搬运其实也没必要CPU来干,那么就由DMA来干这些像数据搬运这样简单且反复要干的事,那DMA通过DMA总线连接到总线矩阵上,它可以拥有和CPU一样的总线控制权,用于访问这些外设小弟,当需要DMA搬运数据时,外设小弟就会通过请求线发生DMA请求,then DMA就获得总线控制权,访问并转运数据,整个过程不需要CPU的参与,省下了CPU的时间用来干其他事情。

3.4引脚定义

红色为电源相关的引脚,蓝色为最小系统相关的引脚,绿色为IO口功能口这些引脚

S代表电源,I代表输入,O代表输出,IO代表输入输出。IO电平代表IO口所能容忍的电压,FT代表能容忍5V的电压,没有FT就只能容忍3.3V的电压。若没有FT又需要接5V的电平,就需要加装电平转换电路。主功能为上电后默认的功能,一般和引脚名称相同,默认复用功能是IO口上同时连接的外设功能引脚,配置IO口时可以选择是通用IO口还是复用功能。重定义功能是如果有两个功能同时复用在了一个IO口上,而你确实需要用到这两个功能,那可以把其中一个复用功能重映射到其他端口上,PS:该重定义功能的表里有对应的端口。

VBAT是备用电池供电的引脚,在这个引脚可以接一个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源

2号引脚是IO口或者侵入检测或RTC,IO口可根据程序输出或读取高低电平,是最基本也是最常用的功能,侵入检测可以用来做安全保障的功能,比如你的产品安全性较高,可在外壳加一些防拆的触点,然后接上电路到这个引脚上,若有人强行拆开设备,那触点断开,这个引脚的电平变化就会触发STM32的侵入信号,然后就会清空数据来保证安全。RTC引脚可以用来输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲

3、4号引脚是IO口或者接32.768KHz的RTC晶振;5、6号引脚接系统的主晶振,一般为8MHz,芯片内部有锁相环电路,可以对这个8MHz的频率进行倍频,最终产生72MHz的频率,作为系统的主时钟;7号NRST是系统复位引脚,N代表它是低电平复位;8、9号引脚是内部模拟部分的电源,比如ADC、RC震荡器等,VSS是负极,接GND,VDD是正极,接3.3V。10~19号、20号、21号、25~33号、34号+37~40号(是IO口或者调试端口,主功能为调试,若要作IO口时要在程序中进行配置,不配置的话默认是不会用作IO口的)、41~43号、45~46号引脚都是IO口,其中PA0还兼具了WKUP的功能,可以用于唤醒处于待机模式的STM32。20号引脚是IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的。23与24号、35与36号、47与48号引脚的VSS和VDD是系统的主电源口,这里STM32内部采用了分区供电的方式。44号引脚是BOOT0,用来做启动配置。

3.5启动配置

作用:指定程序开始运行的位置,一般情况下,程序都是在Flash程序存储器开始执行,但在某些情况下,我们也可以让程序在别的地方开始执行,用以完成特殊的功能

上图最后一句话的意思是BOOT引脚的值是在上电复位后的一瞬间有效的,之后就随便了比如20号引脚主功能是PB2/BOOT1,,即在上电的瞬间,是BOOT1的功能,当第4个时钟过后,就是PB2的功能了

当启动模式为系统存储器时,说明系统存储被选为启动区域,这个模式就是用来做串口下载用的,这个系统存储器存的就是STM32中的一段BootLoader程序(作用是接收串口的数据,然后刷新到主闪存中,这样就可以使用串口下载程序了,当在程序中把五个IO端口都配置成了IO口,就会下载不了程序,此时就需要用到串口方式下载程序了或者没有STLIK/JLIN,也可以用串口来进行下载程序了)

当启动模式为内置SRAM启动,这个模式主要用来进行程序调试

3.6最小系统电路

一般单片机只有一个芯片是无法工作的,我们需要为它连接最基本的电路,这些最基本的电路就叫最小系统电路。

3个分区供电的主电源和模拟部分电源都连接了供电引脚,在3.3V和GND之间,一般会连接一个滤波电容,这个电容可以保证供电电压的稳定

晶振部分的电路,在这里接了一个8MHz的主时钟晶振(STM32的主晶振一般都是8MHz,8MHz经过内部锁相环倍频就得到72MHz的主频,这个晶振的两根引脚接到STM32的5、6号引脚),另外还需要接2个20pF的电容,作为启震电容,电容的另一端接地即可,若需要RTC功能,还需要再接一个32.768KHz的晶振,电路和该晶振部分的电路一样,然后接着3、4号引脚(为什么要使用32.768KHz呢,因为32768是2的15次方,内部RTC电路经过2的15次方分频,就可以生成1s的时间信号了)

复位电路,用来给单片机提供复位信号,这中间的NRST接在STM32的7号引脚,NRST是低电平复位的,当这个复位电路在上电的瞬间,电容是没有电的,电源通过电阻开始向电容充电,并且此时电容呈现的是短路状态,那NRST引脚就会产生低电平,当电容逐渐充满电时,电容就相当于断路,此时就会被R1拉上高电平,即上电瞬间的波形是先低电平,然后逐渐高电平,这里的低电平就可以提供STM32的上电复位信号,当然当然充电很快,所有单片机在上电的一瞬间就复位了。电容左边还并联了一个按键,这个可以提供一个手动复位的功能,当我们按下按键时,电容被放电,并且MRST引脚也通过按键被直接接地了,按键松手后,NRST又回归高电平,此时单片机就从复位状态转为工作状态。

启动配置电路,H1相当于开关的作用,拨动该开关,就可以让BOOT引脚选择接3.3V还是GND了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值