STM32内部主要功能介绍
SRAM和FLASH
存储器 | 缩写 | 类型 | 存储内容 | 读写延迟 | 掉电数据状态 | 写入次数 | 读取次数 | 写入条件 | 成本 | 容量 |
静态随机存储器 | SRAM | RAM | 运行中的动态数据 |
无延迟 速度快 |
消失 | 无限 | 无限 | 无条件 | 高 | 小 |
闪存程序存储器 | FALSH | ROM | 用户程序 |
有延迟 速度慢 |
保存 | 10万次 | 无限 | 先擦出 | 低 |
大 |
时钟、复位和电源管理
-2.0V到3.6V的供电和I/O引脚(部分引脚兼容5V电压)
-上电/断电复位(POR/PDR)、可编程电压监测(PVD)
-4~16MHz晶体振荡器
-内嵌出厂调校的8MHzRC振荡器
-内嵌带校准的40khz的RC振荡器
-产生CPU时钟的PLL
-带校准的32khzRTC振荡器
名称 | 缩写 | 频率 | 外部连接 | 功能 | 用途 | 特性 |
外部高速晶体振荡器 | HSE | 4-16Mhz | 4-16Mhz晶体振荡器 | 系统时钟/RTC | 成本高,温漂小 | |
外部低速晶体振荡器 | LSE | 32Khz | 32.768Khz晶体振荡器 | 带校准功能 | RTC | 成本高,温漂小 |
内部高速RC振荡器 | HSI | 8MHz | 无 | 经过出厂调校 | 系统时钟 | 成本低,温漂大 |
内部低速RC振荡器 | LSI | 40Khz | 无 | 带校准功能 | RTC | 成本低,温漂大 |
低功耗与ADC
工作模式 | 关掉功能 | 唤醒方式 |
睡眠模式 | ARM内核 | 所有外部中断、外部功能的中断/事件 |
停机模式 |
ARM内核 内部所有模式 PLL分频器、HSE |
外部中断输入接口EXTI(16个I/O之一) 电源电压检测中断PVD RTC闹钟到时 USB唤醒信号 |
待机模式 |
ARM内核 内部所有功能 PLL分频器、HSE SRAM内容消失 |
NRST接口的外部复位信号 独立看门狗IWDG复位 专用唤醒WKUP引脚 RTC闹钟到时 |
ADC
STM32F103xxxx增强型产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,可以实现单次或者扫描转换。在扫描模式下,自动进行在选定的一组模拟输入上的转换。
ADC的接口上的其他逻辑功能包括:
*同步的采样和保持
*交叉的采样和保持
*单次采样
ADC可以DMA操作。
模拟看门狗功能允许非常精准的监视一路、多路或所有选中的通道,当被监视的信号超出预置的阈值时,将产生中断。
由标准定时器(TIMX)和高级控制定时器(TIM1)产生的中断,可以分别内部级联到ADC的开始出发和注入触发,应用程序能使AD转换与时钟同步。
温度传感器
温度传感器产生一个随温度线性变化的电压,转换范围在2V到3.6V之间。温度传感器在内部被连接到ADC12_IN16的输入通道上,用于将传感器的输出转换到数字值。
串行单线JTAG调试接口(SWJ-DP)
内嵌ARM的SWJ-DP接口,这时一个结合了JTAG和串行单线调试的接口,可以实现串行单线调试接口或JTAG接口的连接。JTAG的TMS和TCK分别和SWDIOhenSWCLK共用引脚,TMS脚上的一个特殊的信号序列用于在JTAG-DP和SW-DP间切换。
DMA和IO端口
*DMA
7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。
每个通道有专门的DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、纯属的源地址和目标地址都可以通过软件单独设置。
-7通道DMA控制器
-支持的外设:通用、基本、高级定时器、ADC、SPI、IIC和USART。
红色为DMA通讯
*多达80个快速IO端口
-26/37/51/80个IO口,几乎所有IO可以映射到16个外部中断;部分端口可以兼容5V信号。
通用输入输出接口(GPIO)
每个GPIO引脚都可以软件配置为输出(推挽或开漏)、输入。(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚斗鱼数字或模拟的复用外设共用。除了既有模拟输入功能的端口,所有的引脚都有大电流通过能力。
在需要的情况下,IO引脚的外设功能可以通过一个特定的操作锁定,以避免以外的写入IO寄存器。在APB2上的IO引脚可达到18MHz的翻转速度。
GPIO_Mode_AIN模拟输入
GPIO_Mode_IN_FLOATING浮空输入
GPIO_Mode_IPD下拉输入
GPIO_Mode_IPU上拉输入
GPIO_Mode_Out_PP推挽输出
GPIO_Mode_Out_OD开漏输出
GPIO_Mode_AF_PP复用推挽输出
GPIO_Mode_AF_OD复用开漏输出
定时器和看门狗
中等容量的STM32F10xx增强型系列产品包括1个高级控制定时器、3个普通定时器,以及2个看门狗定时器和
1个系统嘀嗒定时器。
高级定时器、普通定时器和基本定时器的功能比较:
定时器 | 计数器分辨率 | 计数器类型 | 预分频系数 | 产生DMA请求 | 捕获/比较通道 | 互补输出 |
TIM1 | 16位 | 向上,向下,向上/下 | 1~65536之间的任意整数 | 是 | 4 | 有 |
TIM2 TIM3 TIM4 |
16位 | 向上,向下,向上/下 | 1~65536之间的任意整数 | 是 | 4 | 没有 |
高级定时器(TIM1)
高级控制定时器(TIM1)可以被看成是分配到6个通道的三相PWM发生器,它具有带死区插入的互补PWM输出,还可被当成完整的通用定时器。四个独立的通道可以用于:
*输入捕获
*输出比较
*产生PWM(边缘或者中心对齐模式)
*单脉冲输出
配置为16位标准定时器时,他与TIMx定时器具有相同的功能。配置为16位PWm发生器时,它具有全调制能力(0%~100%)。
在调试模式下,计数器可以被冻结,同时PWM输出被禁止,从而切断由这些输出控制的开关。
很多功能都与标准的定时器相同,内部结构也相同,因此高级定时器可以通过定时器链接功能与TIM定时器协同操作,提供同步或事件链接工功能。。
通用定时器(TIMx)
STM32F103xx增强型产品中,内置了多达3个可同步运行的标准定时器(TIM2、TIM3和TIM4)。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。
他们还能通过定时器链接功能与高级定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。
这些定时器还能够处理增量编码器的信号,也能处理1到3个霍尔传感器的数字输出。
独立看门狗
独立看门狗是基于12位的递减计数器和一个8位的预分频器,他由一个内部独立的40KHz的RC振荡器提供时钟;且这个RC振荡器时钟独立于主时钟,所以他可以运行于停机和待机模式。他可以被当成看门狗泳衣在发生问题是复位整个系统,或作为一个自由定时器为应用程序提供超时管理。通过选项字节可以配置成是软甲或硬件启动看萌狗。在调试模式下,计数器可以被冻结。
窗口看萌狗
窗口看门狗内有一个7位的递减计数器,并可以设置为自由运行。他可以被当成看门狗用于在发生问题时复位整个系统。他由主时钟驱动,具有早期预警中断功能;在调试模式下,计数器可以被冻结。
系统时基定时器
这个定时器是专用于实时操作系统,也可当成一个标准的递减计数器。它具有下述特性:
*24位的递减计数器
*自动重加载功能
*当计数器为0时能产生一个可屏蔽系统中断
*可编程时钟源
IIC总线
多达2个IIC总线接口,能够工作与多主模式或从模式,支持标准和快速模式。
IIC接口支持7位或10位寻址,7位从模式支持双从地址寻址。内置了CRC发生器/校验器。
他们可以使用DMA操作并支持SMBus总线2.0版/PMBus总线。
通用同步/异步收发器(USART)
USART接口通信速率科大4.5兆位/秒,其他接口的通讯速率可达2.25兆位/秒。USART接口具有硬件的CTS和RTS信号管理、支持IeDA SIR ENDEC传输编解码、兼容ISO7816的智能卡并提供LIN主/从功能。
所有的USART接口都可以使用DMA操作。
串行外设接口(SPI)
多达2个SPI接口,在从或主模式下,全双工和半双工的通信速率可达18兆位/秒。3位的预分频器可产生8种主模式频率,可配置为每帧8位或16位。硬件的CRC产生/教研支持基本的SD卡和MMC模式。所有的SPI接口都可以使用DMA操作。
控制器区域网络(CAN)
CAN接口兼容规范2.0A和2.0B(主动),位速率高达1兆位/秒。他可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。
通用串行总线(USB)
STM32F103xx增强型系列产品,内嵌一个兼容全速USB的设备控制器,遵循全速USB设备(12兆位/秒)标准,端点可由软件配置,具有待机/唤醒功能。USB专用的48MHz时钟由内部主PLL直接产生(时钟源必须是一个HSE晶体振荡器)。