STM32简介
概念:stm32,ST公司基于ARM架构、Cortex-M内核开发的32位微控制器 st:st公司 m:微控制器(MCU) 32:32位 Cortex-M:核心,相当于芯片的CPU,基于ARM的芯片 Cortex-A:高端应用领域,主要为手机,性能最高,发展最快 Cortex-R:实时性高的场景,入硬盘控制器 Cortex-M:单片机领域,STM32 芯片架构:哈佛架构 芯片组成:内核(Cortex-M)+外围电路(总线、控制器、定时器、计数器、寄存器等) 总线: 1.总线频率是指总线的工作速度,频率越高,速度越快 2.总线带宽用来描述总线传输数据的快慢 3.总线带宽=总线宽度x总线频率/8,单位为MB/s 应用:嵌入式领域 //PLC主控也是STM32
STM32外设
英文缩写 | 名称 | 作用 |
---|---|---|
NVIC | 嵌套向量中断控制器 | 管理中断,配置中断优先级 |
SysTick | 系统滴答定时器 | 给操作系统提供定时服务;完成delay函数功能 |
RCC | 复位和时钟控制 | 对系统时钟配置,使能各模块的时钟,不给时钟操作外设无效,时钟目的降低功耗 |
GPIO | 通用IO口 | 可以用来点灯,读取按键,基本功能 |
AFIO | 复用IO口 | 复用端口重定义、中断端口配置 |
EXTI | 外部中断 | 配置好外部中断,当引脚电平发生变化,可以触法中断,让CPU处理任务 |
TIM | 定时器 | 分为高级定时器、通用定时器、基本定时器 可以完成定时中断、测频率、生产PWM波形、配置专用的编码接口 |
ADC | 模数转换器 | 内置12位AD转换器,可以直接读取IO口的模拟电压值,无需链接AD芯片 |
DMA | 直接内存访问 | 帮助CPU完成搬运大量数据这样繁杂任务 |
USART | 同步/异步串口通信 | UART:异步串口 USART即支持异步串口,也支持同步串口 |
I2C | I2C通信 | 通信协议,可以用硬件输出持续波形 |
SPI | SPI通信 | 通信协议可以用硬件输出持续波形 |
CAN | CAN通信 | 通信协议,用于汽车领域 |
USB | USB通信 | 通信协议,USB外设 |
RTC | 实时时钟 | 完成年月日、时分秒的计时功能,可以接外部备用电池,掉电也能正常运行 |
CRC | CRC校验 | 数据校验方式,用于判断数据的正确性 |
PWR | 电源控制 | 可以让芯片进入睡眠模式等状态,来达到省电的目的 |
BKP | 备份寄存器 | 存储器,当系统掉电时仍可由备用电池保存数据,这个根据需要,可完成一些特殊功能 |
IWDG | 独立看门狗 | 当因为带你吃干扰死机或者程序设计不合理进入死循环时,看门狗及时复位芯片,保证系统稳定 |
WWDG | 窗口看门狗 | 当因为带你吃干扰死机或者程序设计不合理进入死循环时,看门狗及时复位芯片,保证系统稳定 |
DAC | 数模转换器 | 可以在IO口直接输出模拟电压,ADC模数转换的逆过程 |
SDIO | SD卡接口 | 用来读取SD卡 |
FSMC | 可变静态存储控制器 | 扩展内存或配置成其他总线协议,用于某些硬件操作 |
USB OTG | USB主机接口 | OTG功能,让STM32作为主机读取其他USB设备 |
注意:这是STM32全部外设,并非所有芯片用于全部外设,具体拥有那些外设翻阅芯片数据手册
F103C8
系列:主流系列,STM32F1 内核: Cortex-M3 主频:72MHz RAM:20K(SRAM) ROM:64K(Flash) 供电:2.0~3.6V,标准3.3V //注意与51区别 封装:LQFP48,48引脚
命名规则
产品系列: STM32:基于ARM核心的32位控制器 产品类型: F:通用类型 产品子系列: 101:基本类型 102:USB基本型,USB2.0全速设备 103:增强型 105/107:互联型 引脚数: T:36 C:48 R:64 V:100 Z:144 闪存存储期数量: 4:16K 6:32K 8:64K B:128K C:256K D:384K E:512K 封装: H:BGA T:LQFP U:VFQFPN Y:WLCSP64
系统结构
内核:Cortex-M3 Flash:存储编写好的程序
总线:
ICode:指令总线,链接Flash闪存,加载程序指令
DCode:数据总线,链接Flash闪存,加载数据,比如常量和调试数据
system:系统总线
链接SRAM,用于存储程序运行时的变量数据
链接FSMC,万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT
AHB:系统总线,先进高性能总线,挂载主要外设,挂载最基本或高性能外设 //72MHz
APB1/2:先进外设总线,链接一般外设;与AHB链接,需要两个桥接,来完成数据转换和缓存 //APB2:72MHz,APB1:36MHz
性能:AHB > APB2 > APB1
DMA:用于数据搬运等,简单且反复要干的事情,DMA通过DMA总线连接到总线矩阵上,拥有总线控制权,访问外设 //需要搬运数据时,外设会通过请求发送DMA请求,DMA获得总线控制权,访问并搬运数据,整个过程不需要CPU参与
引脚图
红色:电源相关引脚 蓝色:最小系统相关引脚 绿色:IO口、功能口引脚 类型:S-电源引脚 I-输入引脚 I/O-输入输出引脚 电平(最大):FT-5V 无标识-3.3V //STM32采用分区供电,短语口较多 调试方式: SWD:SWDIO和SWCLK JTAG:JTMS、JTCK、JTDI、JTDO、NJTRST //STLINK:SWD方式下载程序
启动配置
功能:选择三种不同启动模式,在sysclk第4个上升沿,BOOT引脚的值被锁存,通过BOOT1和BOOT0引脚状态,来选择在复位后的启动模式 //上电瞬间固定值 注意: PB2与BOOT1复用一个端口,上电瞬时为BOOT1功能,之后为PB2
BOOT1 | BOOT0 | 启动模式 | 说明 |
---|---|---|---|
X | 0 | 主闪存存储器 | 主闪存存储器被选为启动区域 |
0 | 1 | 系统存储器 | 系统存储器被选为启动区域,做串口下载 |
1 | 1 | 内置SRAM | 内置SRAM被选为启动区域,用于程序调试 |
系统存储器:串口下载,存STM32中BootLoader程序,接收串口数据,刷新到主闪存中,使用串口下载程序 //将SWD和JTAG都配置为IO口,这使需要串口下载程序
最小系统
晶振
主晶振8MHz,经过内部锁相环倍频,得到72MHz主频 //56引脚 起振电容:20pf RTC功能:32.768KHz晶振,2^15,经过2的15次方分频可以得到1秒时间信号 //34引脚
复位
作用:提供复位信号,低电平复位,上电复位/手动复位 //7引脚
启动配置
下载端口
供电
学习资源:
哔哩哔哩江科大自化协STM32视频资料