- STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器
ST:ST公司;
M:Microcontroller(微控制器MCU,单片机);
32:32位单片机;
内核:ARM Cortex-M,程序指令的执行、加减乘除,相当于芯片CPU
*ST公司拿着ARM公司的内核,完善外围电路,封装起来成了STM32
*以ARM为内核的芯片称为基于ARM内核的单片机
- STM32在嵌入式领域
智能车:用STM32做寻迹小车,读取光电传感器或摄像头数据,然后驱动电机前进和转弯;
无人机:STM32读取陀螺仪加速度计的姿态数据,然后根据控制算法去控制电机的速度,从而保证飞机稳定飞行;
机器人:STM32控制舵机来控制机器人的关节,让机器人运动;
无线通信:给STM32接上2.4G无线模块或者蓝牙、WIFI模块;
物联网:借助无线通信模块通信,比如蓝牙、WIFI、ZigBee,再通过STM32驱动继电器控制220V电路的通断;
工业控制:PLC主控有STM32;
娱乐电子产品
STM32家族
- ARM既指ARM公司,也指ARM处理器内核
- ARM公司是全球领先的半导体知识产权(IP)提供商,只设计内核不生产实物
- ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片,如STM32
- ARM内核型号
- STM32F108C8T6
- 片上资源/外设(Peripheral)
通过程序配置外设到达想要的功能
下面两个是位于Cortex-M3内核里面的外设,其余的则位于内核外
NVIC |
嵌套向量中断控制器 |
管理中断,如配置中断优先级
SysTick |
系统滴答定时器 |
内核里的定时器,给操作系统提供定时服务,完成delay函数
STM32可以加入操作系统如FreeRTOS,UCOS等,如果用了这些操作系统,就需SysTick提供定时来进行任务切换功能
RCC |
复位和时钟控制 |
对系统的时钟进行配置,使能各模块的时钟。STM32中,其他外设上电情况下默认为了降低功耗没有时钟。不给时钟的情况下,操作外设是无效的,外设也不会工作。所以操作外设之前,应使能时钟。RCC来完成时钟的使能
GPIO |
通用IO口 |
用来点灯读取按键等
AFIO |
复用IO口 |
复用端口的重定义,还有中断端口的配置
EXTI |
外部中断 |
配置好外部中断后,就可以触发中断,让CPU来处理任务
TIM |
定时器 |
整个STM32最常用、功能最多的外设
分为高级定时器(最复杂)、通用定时器(最常用)、基本定时器三种类型
可完成定时中断的任务,测频率,生成PWM波形,配置成专用编码器接口等功能
生成PWM波形是电机驱动、舵机驱动的最基本要求
ADC |
模数转换器 |
STM32内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片
DMA |
直接内存访问 |
帮助CPU完成搬运大量数据这样繁杂的任务
USART |
同步/异步串口通信 |
UART异步串口
I2C |
I2C通信 |
SPI |
SPI通信 |
非常常用的两个通信协议,STM32内置了它们的控制器,可以用硬件输出时序波形
通用IO口模拟时序波形也可
CAN |
CAN通信 |
通信协议,多用于汽车领域
USB |
USB通信 |
通信协议,可用STM32的USB外设做一个模拟鼠标、模拟U盘等设备
RTC |
实时时钟 |
实时时钟,在STM32内部完成年月日、时分秒等计算功能,可接外部备用电池,即使掉电也可以正常使用
CRC |
CRC校验 |
一种数据的校验方式,用来判断数据的正确性
PWR |
电源控制 |
可让芯片进入睡眠模式等状态,达到省电的目的
BKP |
备份寄存器 |
这是一段存储器,当系统掉电时,仍可由备用电池保持数据。根据需要还可以完成一些特殊功能。
IWDG |
独立看门狗 |
WWDG |
窗口看门狗 |
当单片机因为电磁干扰四级或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统稳定
DAC |
数模转换器 |
在IO口直接输出模拟电压,是ADC模数转换的逆过程
SDIO |
SD卡接口 |
SD卡是接口,可以用来读取SD卡
FSMC |
可变静态存储控制器 |
可变静态存储控制器,可以用来拓展内存,或者配置成其他总线协议,用于某些硬件操作
USB OTG |
USB主机接口 |
用OTG功能,可以让STM32作为USB主机去读取其他USB设备
- 这是STM32F1整个系列所有外设,并不是所有型号拥有所有外设,就比如C8T6不含后四个外设
- 具体含几个外设,需看对应型号的数据手册,看外设资源表
总览
英文缩写 |
名称 |
英文缩写 |
名称 |
NVIC |
嵌套向量中断控制器 |
CAN |
CAN通信 |
SysTick |
系统滴答定时器 |
USB |
USB通信 |
RCC |
复位和时钟控制 |
RTC |
实时时钟 |
GPIO |
通用IO口 |
CRC |
CRC校验 |
AFIO |
复用IO口 |
PWR |
电源控制 |
EXTI |
外部中断 |
BKP |
备份寄存器 |
TIM |
定时器 |
IWDG |
独立看门狗 |
ADC |
模数转换器 |
WWDG |
窗口看门狗 |
DMA |
直接内存访问 |
DAC |
数模转换器 |
USART |
同步/异步串口通信 |
SDIO |
SD卡接口 |
I2C |
I2C通信 |
FSMC |
可变静态存储控制器 |
SPI |
SPI通信 |
USB OTG |
USB主机接口 |
芯片命名规则
芯片的系统结构
芯片的引脚定义(数据手册上整理而来)
- 对于使用芯片而言,引脚定义非常重要,看完引脚定义大概就知道该如何使用芯片
- 上表中,标红色是电源相关的引脚,标蓝色是最小系统相关引脚,标绿色是IO口、功能口这些引脚
- S代表电源,I代表输入,O代表输出,IO代表输入输出
- I/O口电平代表可容忍电压,FT代表可容忍5V电压,没有FT的只能容忍3.3V电压,
- 若没有FT需要装5V电压需安装电平转换装置
- 主功能,上电后默认的功能,一般与引脚名相同,若不同,引脚的实际功能是主功能而不是引脚名功能
- 默认复用功能,IO口上同时连接的外设功能引脚,这个配置IO口时还可以选择通用IO口还是复用功能
- 重定义功能,当两个功能同时复用在了一个IO口上,确实需要用到这两个功能,把其中一个复用功能重映射到其他端口上,前提是这个重定义功能的表里有对应的端口
依次来看引脚定义
1.VBAT,备用电池供电的引脚,这个引脚可以接个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和大部分寄存器提供电源
2.号引脚是IO口或者侵入检测或者RTC,IO口可以根据程序输出或读取高低电平,是最基本也是最常用的功能,侵入检测可以用来做安全保障的功能(eg:产品的安全性较高,可以在外壳加一些防拆的触点,然后接上电路到这个引脚上,若有人强行拆开设备,那触点断开,这个引脚电平变化,就会触发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号引脚是IO口,PA0兼具WKUP的功能,这个可以用于唤醒处于待机模式的STM32
20.号引脚是IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的
*推荐使用上表加粗的IO口,没有加粗的IO口可能需要配置,或者兼具其他功能
21.22.号都是IO口
23.24.35.36.47.48.号的VSS_1/_2/_3和VDD_1/_2/_3是系统的主电源口,同样的VSS是正极、VDD是负极
*STM32内部采用了分区供电的方式,所以供电口会比较多,在使用时,把VSS都接GND,VDD都接3.3V即可
25~33.号都是IO口
34.37~40.号是IO口或者调试端口,调试端口是用来调试程序和下载程序的,这个STM32支持SWD和JTAG的两种调试方式。SWD需要两根线,分别是SWDIO和SWCLK;JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。使用STLINK下载调试程序,STLINK采用的是SWD的方式,所以只需占用PA13和PA14两个IO口,在使用SWD的调试方式时,剩下的PA15、PB3、PB4可以切换成为普通的IO口来使用,但需要在程序中配置
41~43.号,45~46号都是IO口
44.号BOOT0,用来做启动配置的
STM32启动配置
文章来源地址https://www.toymoban.com/news/detail-836892.html
- 启动配置的作用就是指定程序开始运行的位置。
- 一般情况下,程序都是在Flash程序存储器开始执行,某些情况下,可以让程序在别的地方开始执行,用以完成特殊功能
- 接0就是接地的意思,接X就是无论接哪里,接1就是接3.3V电源+
- 第二个模式01,用来做串口下载用的,系统存储器存的就是STM32一段BootLoader程序(作用是接收串口的数据,然后刷新到主闪存中)
*什么时候用到串口下载?把34.37~40号五个调试端口全部配置成了IO口,无法下载程序,这时使用串口下载;或者没有STLINK,也没有JLINK,那就可以用串口进行下载程序
- 内置SRAM模式启动,是用来程序调试的,现阶段用的比较少
- BOOT引脚的值是在上电复位后的一瞬间有效的,之后就随便了
- 引脚定义中,20号引脚BOOT1和PB2是在同一个引脚上的,上电瞬间,是BOOT1的功能,当第四个时钟过之后,就是PB2的功能了
- 想让STM32正常工作:首先需要把电源部分和最小系统部分的电路连接好,也就是表中标红色和标蓝色的部分
单片机只有一个芯片是无法工作的,为其连接最基本的电路,这些最基本的电路称为最小系统电路
最小系统电路
跳线帽
- 自己画板子可以参考这个电路,如果用STM32最小系统板设计电路的话最小系统板上已经包含了这些电路
STM32F103C8T6核心板原理图背面
*以上是最基本的STM32的介绍,想要学好STM32还需阅读官方详细介绍
自己在概念上的一些疑惑,通过搜索画了一张思维导图理解文章来源:https://www.toymoban.com/news/detail-836892.html
到了这里,关于STM32学习笔记【江科协】【1-2】STM32简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!