STM单片机基础了解--野火
STM32, ST 是意法半导体, M 是 Microelectronics 的缩写, 32 表示32 位, STM32 就是指 ST 公司开发的 32 位微控制器。
ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 Cortex-M3微控制器内核。紧随其后, ST(意法半导体)公司就推出了基于 Cortex-M3 内核的 MCU—STM32。
STM32 有很多系列,可以满足市场的各种需求,从内核上分有 Cortex-M0、 M3、 M4和 M7 这几种,每个内核又大概分为主流、高性能和低功耗。
单纯从学习的角度出发,可以选择 F1和 F4, F1代表了基础型,基于 Cortex-M3内核,主频为 72MHZ, F4 代表了高性能,基于 Cortex-M4 内核,主频 180M。
之于 F1, F4(429 系列以上)除了内核不同和主频的提升外,升级的明显特色就是带了 LCD 控制器和摄像头接口,支持 SDRAM,
STM32F103 采用的是 Cortex-M3 内核,内核即 CPU,
TM8 和 STM32 分类
CPU 位数 | 内核 | 系列 | 描述 |
32 | Cortex-M0 | STM32-F0 | 入门级 |
STM32-L0 | 低功耗 | ||
Cortex-M3 | STM32-F1 | 基础型,主频 72M | |
STM32-F2 | 高性能 | ||
STM32-L1 | 低功耗 | ||
Cortex-M4 | STM32-F3 | 混和信号 | |
STM32-F4 | 高性能,主频 180M | ||
STM32-L4 | 低功耗 | ||
Cortex-M7 | STM32-F7 | 高性能 | |
8 | 超级版 6502 | STM8S | 标准系列 |
STM8AF | 标准系列的汽车应用 | ||
STM8AL | 低功耗的汽车应用 | ||
STM8L | 低功耗 |
— |
ST M32STM32 |
FF | 103 | Z | E | T | 6 |
家族 | STM32 表示 32bit 的 MCU | ||||||
产品类型 | F 表示基础型 | ||||||
具体特性 | 基础型 | ||||||
引脚数目 |
Z 表示 144pin,其他常用的为 C 表示 48, R 表示 64, V 表示 100, Z 表示 144, B 表示 208, N 表示 216 |
||||||
FLASH 大小 | E 表示 512KB,其他常用的为 C 表示 256, E 表示 512, I 表示 2048 | ||||||
封装 | T 表示 QFP 封装,这个是最常用的封装 | ||||||
温度 | 6 表示温度等级为 A : -40~85° |
STM32 芯片架构简图
启动文件
启动文件在这里只是简要的介绍下,关于这个文件的详解请参考后面的《启动文件详解》章节。
名为“startup_stm32f10x_hd.s”的文件,它里边使用汇编语言写好了基本程序,当STM32 芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起 C 语言的运行环境,所以我们把这个文件称为启动文件。该文件使用的汇编指令是 Cortex-M3 内核支持的指令,可参考《Cortex-M3 权威指南》 中指令集章节。
startup_stm32f10x_hd.s 文件由官方提供,一般有需要也是在官方的基础上修改,不会自己完全重写。该文件从 ST 固件库里面找到,找到该文件后把启动文件添加到工程里面即可。不同型号的芯片以及不同编译环境下使用的汇编文件是不一样的,但功能相同。
对于启动文件这部分我们主要总结它的功能,不详解讲解里面的代码,其功能如下:
初始化堆栈指针 SP;
初始化程序计数器指针 PC;
设置堆、栈的大小;
初始化中断向量表;
配置外部 SRAM 作为数据存储器(这个由用户配置,一般的开发板可没有外部
SRAM) ;
调用 SystemIni() 函数配置 STM32 的系统时钟。
设置 C 库的分支入口“__main”(最终用来调用 main 函数) ;
STM单片机基础了解--野火相关推荐
- c51编程语言基础习题,《单片机基础》练习题及答案
单片机基础(第3版) 第1章计算机基础知识 (一)填空题 1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH).十进制数-100的补码为(9CH),+100的补码 为(64H ...
- java gpio_单片机基础——使用GPIO输出点亮一个LED灯
1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...
- 嵌入式单片机基础篇(一)之stm32F1GPIO详解
嵌入式单片机基础篇(一)之stm32F1GPIO详解 stm32F1GPIO详解 下面以stm32f103zet6以及51单片机为例,讲解单片机最基本部分IO口 第一部分:stm32 STM32 的 ...
- 单片机基础(一):外部引脚及总线接口
51单片机外部引脚 如上图,从左至右,从上到下,32个引脚每八个一组,分别称为P1口,P0.P3.P2口 输入输出引脚 P0口(39 ~ 32脚):即P0.0 ~ P0.7,通常作为双向I/O口, ...
- 单片机基础(五):定时/计数器的工作原理及工作方式
定时 / 计数器 单片机中的模块,可通过编程实现对系统时钟计数(作定时器),也可以对外部信号计数(作计数器) 每个定时/计数器都有多种工作方式,不同的工作方式对应计数长度和初值装载方式不同 51系列单 ...
- 51单片机直流电机c语言基础知识要点,完结单片机基础知识的总结(制作作品)...
完结单片机基础知识的总结(制作作品) 一个暑假过去了,也许没有达到学长和老师的期望,可是只有我知道我自己是突破了自己的,从未如此认真的一一天学习,度过三分之二个充实的暑假.现在将一腔想表达的,想解惑的 ...
- 单片机基础之ADD与ADDC的区别详解
单片机基础之ADD与ADDC的区别详解 ADD 两数相加,不加进位位. ADDC 两数相加,加进位位.进位当时为1就加1,进位为0就加0. 一般在多字节数相加时,低字节相加用ADD ,高字节相加就用A ...
- 51单片机基础之点亮一盏LED灯
1.单片机基础(1)LED,即发光二极管,是一种有方向性的半导体固体发光器件.(2)LED原理解释:LED的阳极串联一个电阻,然后连接到电源VCC,而LED的阴极连接到单片机的P2口,如果想把LED灯 ...
- 单片机知识点总结框图_单片机基础知识
什么是单片机: 顾名思义,单片机中的"单片"就是只有一个芯片, "机"就是指计算机,只有有一个芯片,她却具有简单计算机的功能,这就叫做单片机,也教微处理器微控制 ...
- 嵌入式单片机基础篇(八)之两只看门狗
嵌入式单片机基础篇(八)之两只看门狗 独立看门狗与窗口看门狗 第一部分:stm32 .STM32 内部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG). (一)独立看门狗 STM3 ...
最新文章
- 21-爬虫之scrapy框架selenium的使用08
- Android LruCache技术原理
- SOA(在Tuscany 中开发web service)
- css3 flex布局九宫格,css3最全flex布局结构整理
- Tuxera Ntfs for mac内核扩展批准不了怎么办 手动批准mac内核扩展
- JavaWeb:JSP、EL、JSTL
- 巨头垂涎却不能染指,loT数据库风口已至
- android 3d桌面壁纸,五款超酷安卓手机3D桌面软件合辑推荐
- linux gprs模块 sim900芯片 ppp拨号上网
- 统计学 参数估计 之 总体均值的估计
- 电子科技大学计算机专业考什么,2015年电子科技大学081203计算机应用技术考研专业目录及考试科目...
- vue 监听input停止输入后发送请求
- angularjs 常用方法
- 2021年危险化学品生产单位安全生产管理人员考试题库及危险化学品生产单位安全生产管理人员最新解析
- python读取csv文件‘gbk‘ codec can‘t decode byte 0xbf in position 2: illegal multibyte sequence
- 遥感水文前景_我国“人才紧缺”的7大专业,就业前景好,快来看看
- Docker Jenkins测试邮箱通知报错:553 Mail from must equal authorized user
- 浮动以及清楚浮动的几种方法
- 国内最快的jquery cdn
- 专业术语-外文首字母组词的原词组