STM32单片机入门教程---STM32简介

一.简介

  • STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器
  • STM32家族系列
    在这里插入图片描述
    本次教程使用的是STM32F1系列(主流系列)
  • ARM
    ARM指ARM公司,也指ARM处理器内核
    在这里插入图片描述
    ARM公司设计ARM内核,半导体厂商设计外围电路并生产芯片(存储器和外设)
    在这里插入图片描述
    ARM内核有三种子型号:A系列(适用于高端应用领域)
    R系列(面向实时性很高的场景)
    M系列(单片机领域)
  • STM32F103C8T6(我们使用的STM32型号)
    系列:主流系列STM32F1
    内核:ARM Cortex-M3
    主频:72MHz
    RAM:20k(SRAM)
    ROM:64k(Flash)
    供电:2.0~3.6V(标准3.3V) 【不同于之前学习的51单片机(5V)】

二.片上资源(外设)

在这里插入图片描述
NVLC和SysTick都是指内核里面的外设,其他的代表内核外的外设
【我们这款C8T6的芯片没有后面四个外设】
芯片所有的外设可以在数据手册中的“器件一览”中查找

三.命名规则

在这里插入图片描述

四.系统结构

在这里插入图片描述
左上角为内核,ICode和DCode主要连接Flash闪存;
Flash存储我们编写的程序;
ICode指令总线用来加载程序指令;
Dcode数据总线用来加载数据,如常量和调试数据;
SRAM存储程序运行时的数据;
AHB系统总线用于挂载主要外设(先进高性能总线)
APB系统总线用于挂载一般外设(先进外设总线)
【注:AHB>APB2>APB1,且APB2一般和AHB同频率为72MHz,APB1一般为36MHz】
DMA的作用是做比如数据搬运这种简单且重复的事情,通过DMA总线访问外设,替代CPU工作

五.引脚定义

在这里插入图片描述
红色的是电源相关引脚,蓝色的是最小系统相关引脚,绿色的是IO口、功能口这些引脚;
S代表电源,I代表输入,O代表输出,IO代表输入输出;
IO口电平代表IO口所能容忍电压,FT表示能容忍5V电压,无FT的表示能容忍3.3V电压;
默认复用功能是IO口上同时连接的外设功能引脚;
重定义功能表示如果有两个功能同时复用在一个IO口上,可以把其中一个复用功能重映射到其他端口上【前提是重定义表里有对应端口】
1号引脚VBAT表示备用电池供电引脚,系统电源断电时给内部的RTC时钟和备份寄存器供电;
2号引脚是IO口或侵入检测或RTC,侵入检测用于安全保障功能;
3、4号引脚是IO口或接32.768KHz的RTC晶振;
5、6号引脚接系统主晶振,一般为8MHz;
7号引脚NRST是系统复位引脚,N代表低电平复位;
8、9号引脚是内部模拟部分电源,如ADC/RC振荡器,VSS是负极,接GND,VDD是正级,接3.3V;【同47、48】
10~19号引脚都是IO口;【优先使用】
20号引脚是IO口或BOOT1引脚,BOOT引脚是用来配置启动模式;
21~22引脚也是IO口;
23、24引脚是系统的主电源口;【同47、48号引脚】
34、37~40引脚是调试端口,用来调试程序和下载程序,我们使用STLNK下载调试程序,用的是SWD方式,只占用PA13、PA14两个IO口,剩下的PA15、PB3、PB4可以切换普通IO口使用,需要在程序中进行配置;

六.启动配置

在这里插入图片描述作用是指定程序开始的位置,一般都是在Flash程序存储器中开始执行;
第一个模式最常用,第二个模式一般用来做串口下载,第三个模式用的比较少;
【BOOT引脚的值只在上电一瞬间有用】

七.最小系统电路

在这里插入图片描述STM32的主晶振一般都是8MHz,经过内部锁相环倍频,得到72MHz的主频;
启动配置在实物上体现的是用跳线帽,当跳线帽接在左边两个引脚时,配置的时GND,在右边两个引脚时,配置的是3.3V,这样来配置BOOT的高低电平;

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优秀的处理器配合好的开发工具和工具链成就了单片机的辉煌,这是单片机开发者辛勤劳动的结果。也正因为此,ARM的工具链工程师和CPU工程师强强联手,日日夜夜不停耕耘为ARM7TDMI设计出了精练、优化和到位的内部结构,终于成就了ARM7TDMI的风光无限的辉煌。新的ARMCortex-MB处理器在破茧而出之后,就处处闪耀着ARM体系结构激动人心的新突破。它是基于最新最好的32为ARMv7架构,支持高度成功的Thumb-2指令集,并带来了很多前卫崭新的特性。在它优秀,强大的同时,编程模型也更清爽,因而无论你是新手还是骨灰级玩家都会对这样秀外慧中的小尤物爱不释手。根据ARM的统计,2010年全部Cortex-MMCU出货量为1.44亿片,2008年~2011年第一季度,STM32累计出货量占Cortex-MMCU出货量的45%。也就是说,两个Cortex-M微控制器中有一个就来自ST。”很多市场分析机构也ARM的强劲增长表示认可。2007年在3264bitMCU及MPU架构中,ARM所占市场份额为13.6%,而2010年已经占了23.5%击败了PowerArchitecture,成为市场占有率最多的架构。Cortex-n3内核是ARM公司整个Cortex内核系列中的微控制器系列(M)内核还是其他两个系列分别是应用处理器系列(A)与实时控制处理系列(R),这三个系列又分别简称为A、R、M系列。当然,这三个系列的内核分别有各自不同的应用场合。Cortex-MB内核是为满足存储器和处理器的尺寸对产品成本影响很大的广泛市场和应用领域的低成本需求而专门开发设计的。主要是应用于低成本、小管脚数和低功耗的场合,并且具有极高的运算能力和极强的中断响应能力。Cortex-M3处理器采用纯Thumb2指令的执行方式,这使得这个具有32位高性能的ARM内核能够实现8位和16位的代码存储密度。核心门数只有3K,在包含了必要的外设之后的门数也只有60K,使得封装更为小型,成本更加低廉。Cortex-n3采用了ARMV7哈佛架构,具有带分支预测的3级流水线,中断延退最大只有12个时钟周期,在末尾连锁的时候只需要6个时钟周期。同时具有1.25DMIPS/MHZ的性能和0.19MW/MHZ的功耗。     社会对基于ARM的嵌入式系统开发人员的高需求及给予的高回报,催生了很多的培训机构,这也说明嵌入式系统的门槛较高,其主要原因有以下几点。ARM本身复杂的体系结构和编程模型,使得我们必须了解详细的汇编指令,熟悉ARM与Thumb状态的合理切换,才能理解Bootloader并对操作系统进行移植,而理解Bootloader本身就比较困难,因而对于初学者来说Bootloader的编写与操作系统的移植成了入门的第一道难以逾越的门槛2、ARM芯片,开发板及仿真器的高成本,这样就直接影响了嵌入式开发的普及,使得这方面人才增长缓慢;3、高校及社会上高水平嵌入式开发人员的短缺,现实问题使得我们的大学生和公司职工在入门的道路上困难重重,很多人也因此放弃;培训机构的高费用,虽然有高水平的老师指导,但是高费用就是一道关口,进去的人也只是在短短的几天时间里匆匆了解了一下开发过程,消除了一些畏惧心理而己,修行还是得依靠自己;5、好的开发环境需要资金的支持,也直接影响了入门的进度。基于Cortex-m3内核的ARM处理器的出现,在优秀的Kei开发工具的支持下,可以自动生成启动代码,省去了复杂的Bootloader的编写。Thumb-2指令集的使用,使得开发人员不用再考虑ARM状态与Thumb状态的切换,节省了执行时间和指令空间,大大减轻了软件开发的管理工作。处理器与内存尺寸的减少,大大降低了成本,使得芯片及开发板的价格得以在很大程度降低。Cortex-M3内核通过把中断控制器、MPU及各种调试组件等基础设施的地址固定很大程度上方便了程序的移植。源代码是公开的库函数,使得我们可以摒弃晦涩难懂的汇编语言,在不需要了解底层寄存器的操作细节的情况下,用C语言就可以完成我们需要的功能。所有这些特点使得我们学习ARM处理器的门槛得以降低。同时建议大家尽量去用固件库。而不是避开固件库自己写代码。因为在实际的项目中,代码成百上千个,不可能都自己来写,调用固件库中的函数来完成,才是可行的方案。当然我们在深入的情况下,透彻理解寄存器的操作是必要的,也是值得的,高效编程也必须在这方面努力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值