嵌入式系统(四):STM32微控制器及最小系统(1)
文章目录
- 一、STM32微控制器概述
- 1、控制器主要参数:
- 2、内部资源情况:
- 3、STM32总线系统
- 4、存储器映射
- 5、STM32启动模式
- 6、程序下载调试电路
- 7、STM32最小系统
- 电源:
- 复位
- 时钟源
- 最小化系统硬件需求
- 8、低功耗模式
- 二、STM32库函数及程序开发
- 1、STM32固件库
- 2、搭建开发环境及如何开发
一、STM32微控制器概述
STM32系列32位闪存微控制器使用ARM公司的Cortex-M3内核,按内核架构分为不同产品,其中STM32F系列有:STM32F103“增强型”系列;STM32F101“基本型”系列;STM32F105、STM32F107“互联型”系列。
1、控制器主要参数:
2、内部资源情况:
3、STM32总线系统
其中STM32的Cortex-M3内核通过指令总线与Flash存储器连接;数据总线和系统总线和先进高速总线(Advanced High Speed Buses,简称AHB)相连。
4、存储器映射
0x00000000~0x1FFFFFFF
代码区:该区用来存放程序 0x20000000~0x3FFFFFFF
该区用于片内SRAM 0x40000000~0x5FFFFFFF
片上外设区,其中分配给各个外设的地址空间分为三类:APB1总线外设存储地址;
APB2总线外设存储地址;AHB总线外设存储地址0x60000000~0x9FFFFFFF
静态存储器控制区(FSMC):用于扩展外部存储器0xA0000000~0xDFFFFFFF
用于片外外设扩展0xE0000000~0xFFFFFFFF
私有外设区:用于NVIC、MPU及调试组件等使用
代码区起始地址从0x00000000
开始;片上SRAM从0x20000000
开始;用户设备的存储映射从0x40000000
开始,其中设备寄存器地址位于外设位带区;Cortex-M3内核寄存器地址从0xE0000000
处开始。
Flash存储区由三部分组成,首先用户Flash区从0x08000000
开始;其次系统存储区是一个4KB的Flash存储空间,存储出厂启动引导(Bootloader);最后一部分从0x1FFFF800
开始,含有一组可配置字节,允许用户对STM32进行系统配置。
5、STM32启动模式
各种启动设置,启动后执行第一条指令的位置不同,会造成不同的结果。
6、程序下载调试电路
STM32F10xxx使用Cortex-M3内核,该内核内含硬件调试模块,支持复杂的调试操作。
硬件调试模块允许内核在取值或访问数据时停止,内核停止时,内核的内部状态和系统外部状态都可以查询,完成查询后,内核和外设可被复原,程序继续执行。
STM32F10xxx当连接到调试器并开始调试时,调试器将使用内核的硬件调试模块进行调试操作,支持两种调试接口:
(1) JTAG调试接口;(2) 串行接口(Serial Wire, SW)
7、STM32最小系统
使用最少的硬件就可以使得我们的STM32系统进行正常的工作。
电源:
电源是一个控制器运行的最必要的条件。
STM32F103系列微控制器采用的电源工作范围是2.0~3.6V,常规设计一般选用3.3V电源。
复位
STM32F103支持3种复位形式,即系统复位、电源复位和备份区域复位。
系统复位:
将复位除时钟控制器CSR中的复位标志和备用域寄存器外的所有寄存器
①NRST引脚上出现低电平(如外部按钮复位)。其复位效果与需要的时间、微控制器供电电压、复位阈值等相关。为了使其充分复位,在工作电压3.3V时,复位时间200ms。复位入口地址为0x00000004。
②窗口看门狗计数终止(WWDG复位) ;
③独立看门狗计数终止(IWDG复位);
④软件复位(SW复位),通过设置相应的控制寄存器位来实现;
⑤低功耗管理复位,进入待机模式或停止模式时引起的复位。
电源复位
电源复位能复位除备份域寄存器外的所有寄存器。(比系统复位还强,时钟控制器也可以通过这里复位。)
(1)利用上电瞬时通过电容短路的特点以及常态断路的特点,产生一个脉冲信号,并连接到芯片NRST引脚从而产生RESET。
(2)STM32单片机集成了一个上电复位(POR)和掉电复位(PDR)电路,当供电电压达到2V时,系统就能正常工作。只要Vdd低于特定的阈值,不需要外部复位电路,STM32就能处于复位模式。
备份域复位
当以下事件中之一发生时,产生备份区域复位:
①软件复位后,备份区域复位可由设置备份区域控制寄存器RCC_BDCR中的BDRST位产生。
②在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。
时钟源
最小化系统硬件需求
8、低功耗模式
当处理器不需继续运行时,可以利用多种低功耗模式来节省功耗。
- 睡眠模式:电压调节器工作正常,Cortex-M3处理器停止运行,但外设仍然正常运行,所有的SRAM和寄存器内容将被保留,所有I/O引脚都保持在运行模式时状态,功耗相对于正常模式得到降低。(处理器不工作,CPU不工作,外设正常运行,寄存器内容保留)
- 停止模式:也称为“深度睡眠模式”,电压调节器工作在停止模式,选择性地为某些模块提供1.8V电源,Cortex-M3停止运行,内部外设停止运行,所有的SRAM和寄存器内容被保留。(CPU不工作,内部外设不工作,电压调节器不工作,寄存器内容保留)
- 待机模式:整个1.8V区域断电,Cortex-M3处理器停止运行,内部外设停止运行,SRAM和寄存器内容丢失,备份寄存器内容保留,待机电路维持供电。(只有备份寄存器内容保留,其他全部停止或丢失内容)
从低功耗模式恢复后的处理如下:
- 睡眠模式时,只有处理器停止工作,SRAM、寄存器的值仍保留,程序当前执行状态信息并未丢失,因此从睡眠状态恢复后,回到进入睡眠状态指令的后一条指令开始执行。
- 停止模式时,SRAM、寄存器的值仍然保留,因此从停止状态恢复后,回到进入停止状态指令的后一条指令开始执行。但不同于睡眠模式,进入停止 模式,STM32时钟关断(与睡眠模式不同),因此恢复后,STM32将使用内部高速振荡器作为系统时钟。
- 待机模式时,所有SRAM和寄存器的值丢失,因此从待机模式恢复后,程序重新从复位初始位置开始执行(最惨烈),相当于一次软件复位效果。
二、STM32库函数及程序开发
1、STM32固件库
传统的单片机例如51微控制器,程序开发直接配置微控制器,通过查询寄存器表,看要用到哪些配置位,这些都是很琐碎和机械的工作,相对于简单微控制器例如51等寄存器数量少又很简单,可以通过直接配置寄存器的方式来开发。
但STM32单片机功能强大灵活,例如有关GPIO的配置寄存器就有十几个,如果去查询寄存器手册开发就很不方便。因此ST公司针对STM32提供函数接口,即API(Application Program Interface),开发者可通过调用这些函数接口来配置STM32的寄存器,使得开发人员可以脱离最底层的寄存器操作,有开发快速、易于阅读和维护成本低等优点。
2、搭建开发环境及如何开发
- ARM公司的MDK
- Embedded Workbench公司的IAR开发环境
- ARM gcc编译器,选择合适的编辑器搭建开发平台
嵌入式系统(四):STM32微控制器及最小系统(1)相关推荐
- STM32F系列ARM Cortex-M3核微控制器基础之系统时钟一
STM32F系列ARM Cortex-M3核微控制器基础之系统时钟 本文章是基于STM32F103ZE微控制器,主要是详细说明STM32F系列的特性,由于本人是初学者,出现错误是难免的,请大家见谅.固 ...
- 基于stm32微控制器的绘图机器人设计
目录 第一章 绪论 1 基于 stm32 微控制器的绘图机器人研究设计的目的 1 基于 stm32 微控制器的绘图机器人研究设计的设计功能 1 第二章 系统整体方案设计 2 第三章 硬件设计 4 硬件 ...
- 意法半导体推出首款8引脚STM32微控制器,可适用于简单应用
中国,2019年9月20日--意法半导体8引脚STM32微控制器(MCU)现已上市,紧凑.经济的封装让简单的嵌入式开发项目也能利用32位MCU的性能和灵活性. 新推出的四款STM32G0 微控制器是8 ...
- STM32F103C8T6电池电量ADC检测代码,适用于基于库函数的STM32微控制器
以下是基于库函数的STM32微控制器,如STM32F103C8T6,用于电池电量ADC检测的代码: #include "stm32f10x.h"void ADC1_Init(voi ...
- ARM Cortex-M3内核与STM32微控制器
一.ARM Cortex-M3处理器的构成部分 ARM Cortex-M3微处理器由ARM Cortex-M3内核和调试系统构成. 1.内核结构: 将CPU(Cortex-M3内核).存储器.定时器/ ...
- 如何选择适合自己的STM32 微控制器?
选择控制器型号,俗称选型,首先要搞清楚芯片型号各类参数所表示的含义.STM32 ,顾名思义,ST表示意法半导体,M:Microelectronics的缩写,表示微控制器.32:32位的意思,表示这是一 ...
- STM32微控制器 | 复习七 | 定时器原理及应用
一.定时器的特征 STM32F103增强型系列产品包含:2个高级控制定时器.4个通用定时器.2个基本定时器.1个实时时钟.2个看门狗定时器和1个系统滴答定时器. 4个通用定时器(TIM2.3.4.5) ...
- STM32微控制器 | 复习九 | ADC原理及应用
一.AD转换的分类及其常用AD转换的特点 分类: 按转换方式分:双积分式A/D转换,逐次逼近式A/D转换,并行比较式A/D转换. 按转换位数分:8位.10位.12位.16位.24位. 位数的含义,比如 ...
- 华芯微特SWM220R8T7-LQ64-22100最小系统板测试版开发板面包板
一.系统板特点: 1.板载了基于MCU的最基本电路,如晶振电路和电源转换电路. 2.核心板引出了常用的I/O中资源. 3.引出了SWD仿真调试下载接口,可以用J-Link调试仿真下载器下载,方便简单. ...
最新文章
- 12月22日 find命令
- VMware静态地址上网
- 《设计团队协作权威指南》—第1章1.3节甘为螺丝钉
- 利用jsoup进行模拟登录
- 巧用层次坐标解决统计图分类轴与系列取值
- mysql 联合查询去重复_两个表联合查询去重复GROUP_CONCAT
- 实测PD18W/30W/65W充电器给iPhone xs充电快慢对比
- 【数据结构】二叉树经典习题
- azul zing_Azul Systems CTO讨论Lambda并提高Java社区的投入
- iOS7 tabbar遮盖tableview的cell解决方法
- Lucene关键字高亮显示
- 做一条USB A转Type C 数据线 和OTG线
- 基于ThinkPHP6的网站后台管理系统
- total command关闭按钮如何修改为最小化
- Anaconda环境下离线安装dlib库,在线安装很多问题报错,离线安装速度快稳定
- 上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域,请编写程序从键盘输入邮件的目的区域编码和重量,按下列计费规则计算快递费用并输出运费,计算结果保留2位小数。
- 机器人ccid认证_机器人认证来了
- Conditional image synthesis with auxiliary classifier GANs
- 一文读懂区块链产业最新发展趋势
- Photoshop CS5 3D