STM32F1与STM32CubeIDE快速入门STM32F1微控制器概述
STM32F1与STM32CubeIDE快速入门-STM32F1微控制器概述
STM32微控制器概述
1、STM32F103VE简单介绍
STM32 系列微控制器是 32 位微控制器中最受欢迎的之一。 STMicroelectronics 为 STM32 部件提供多个产品线。 有低功耗、主流、高性能的产品线。 以及更多特定于应用程序的各种零件,使您能够为您的项目选择合适的零件。
有用于加密应用的低成本全速 USB 解决方案、CAN、LIN、以太网、DCMI(数码相机接口)和 CryptoEngine,以及更强大的外围设备。 数字和模拟,例如 ADC、DAC、运算放大器、比较器等。

本次使用的STM32微控制器为STM32F103VE。STM32F103VE是一个32位高密性能微控制器单元, 有着3个12位模数转换器和4个通用16位计时器, 外加两个PWM计时器, 另外有着标准和先进的通讯接口, 高达两个IC, 3个SPI和2个IS,1个SDIO, 5个USART, 1个USB和1个CAN。它融合了高性能的ARM Cortex-M3 32-位 RISC 内核, 运行频率72MHz, 高速内嵌存储器和一个宽范围的强化输入输出外设, 连接至两个APB总线。此100引脚通用微控制器单元(MCU)具有512kB闪存。

2、STM32微控器的一些基本概念
内置Flash存储器:用于储存程序和数据。
内置SRAM:支持CPU以0等待周期访问(读/写)。
嵌套向量式中断控制器(NVIC):STM32F103xx增强型内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道(不包括16个Coretex-M3的中断线)和16个优先级。其特点如下:
- 紧耦合的NVIC能够到达低延迟的中断响应处理
- 中断向量入口地址直接进入核心
- 紧耦合的NVIC接口
- 允许中断的早期处理
- 处理晚到的较高优先级中断
- 支持中断尾部链接功能
- 自动保存处理器状态
- 中断返回时自动恢复,无需额外指令开销
NVIC以最小的中断延迟提供灵活的中断管理功能。
外部中断/事件控制器(EXTI):外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用I/O连接到16个外部中断线。
时钟和启动:系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具有失效监控的4~16MHz时钟;当外部时钟失效时,它将被隔离,同时会产生相应的中断。同样,在需要时可以采取对PLL时钟完全的中断管理,比如当一个外部振荡器失效时。具有多个预分频器用于配置AHB的频率、高速APB(APB2)和低速APB(APB1)区域。AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz。
自举(启动)模式:在启动时,自举管脚被用于选择三种自举模式中的一种:
- 从用户闪存(Flash)中自举(启动)
- 从系统存储器中自举(启动)
- 从SRAM中自举(启动)
自举加载器存放于系统存储器,可以通过USART1对闪存进行重新编程。
低功耗模式:STM32F103xx增强型支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳平衡。
- 睡眠模式:只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU
- 停机模式:在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在此模式下,停止所有内部1.8V部分的供电,PLL、HSI和HSE的RC振荡器被关闭,调压器可以被置于普通模式或低功耗模式。可以通过任一配置成EXTI信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/O口之一、PVD的输出、RTC闹钟或USB的唤醒信号。
- 待机模式:在此模式下,可达到最低的电能消耗。内部的电压调压器被关闭,因此所有内部的1.8V部分的供电被切断;PLL、HSI和HSE的RC振荡器也被关闭;进行待机模式后,SRAM和寄存器的内容将消失,但后备寄存器的内容仍然保留,待机电路仍工作。从待机模式退出的条件是:NRST上的外部复位信号,IWDG复位、WKUP管脚的一个上升沿边沿或RTC的闹钟到时。
DMA:7路通用DMA可以管理储存到储存器,设备到储存器和储存到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区的结尾时所生产的中断。每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。
RTC(实时时钟)和后备寄存器:RTC和后备寄存器通过一个开关供电,在Vdd有效时该开关选择VDD供电,否则由Vbat管脚供电。后备寄存器(10个16位的寄存器)可以用于在Vdd消失时保存数据。实时时钟具有一组连续运行的计数器,可以通过适当的软件提供日历时钟功能,还具有闹钟中断和阶段性中断功能。RTC的驱动时钟可以是一个使用外部晶体的32.768kHz的振荡器,内部低功耗RC振荡器或高速的外部时间经过128分频。内部低功耗RC振荡器的典型频率为32kHz。为补偿天然晶体的偏差,RTC的校准是通过输出一个512Hz的信号进行。RTC具有一个32位的可编程计数器,使用时,它将生产一个1秒长的时间基准。
独立的看门狗:独立的看门狗是基于一个12位的递减计数器和一个8位的预分频器,它由一个独立的32kHz的内部RC振荡器提供时钟,因为这个RC振荡器独立于主时钟,所以它可以行于停机和待机模式。它可以被当成看门狗用于在发问题时复位整个系统,或作为一个自由定时器为应用程序提供超时管理。通过选择字节可以配置成是软件看门狗或硬件看门狗。在调式模式中,计数器可以被冻结。
窗口看门狗:窗口看门狗内有一个7位递减计数器,并可以设置成自动运行。它可以被当成看门狗用于发生错误时,重置整个系统。它由主时钟驱动,具有早期 预警中断功能;在调试模式下,计算器可以被冻结。
系统时基定时器:这个定时器是专用于操作器,也可当成一个标准的递减计数器。它具有如下特性:
- 24位递减计数器
- 重加载功能
- 当计数器为0时能生产一个可屏蔽中断
- 可编程时钟源
**通用定时器(TIMx)**:STM32F103增强型系列产品中内置了多达3个同步的标准定时器。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。
**高级控制定时器(TIM1)**:高级控制定时器(TIM1)可以被看成是一个分配到6个通道的三相PWM发生产器,它还可以被当成一个完整的通用定时器。四个独立的通道可以用于:
- 输入捕获
- 输出比较
- 产生PWM(边缘或中心对齐模式)
- 单脉冲输出
- 反相PWM输出,具程序可控的死区插入功能
配置16位标准定时器时,它与TIMx定时器具有相同的功能,配置为16位PWM发生器时,它具有全调制功能(0~100%)。在配置模式下,计数器可以被冻结。很多功能都与标准的TIM定时器相同,内部结构也相同,因此高级控制定时器可以通过定时器链接功能与TIM定时器协同操作,提供同步或事件链接功能。
I2C总线:多达2个I2C总线接口,能够工作于多主和从模式,支持标准和快速模式。支持双从地址寻址(只有7位)和主模式下的7/10位寻址。内置了硬件CRC发生产器/校验器。支持使用DMA操作并支持SM总线2.0版/PM总线。
**通用同步/异步接受发送器(USART)**:其中一个USART接口通信速率可达4.5兆位/秒,其他USART接口通信速率可达2.25兆位/秒。接口具有硬件的CTS和RTS信号管理、支持IrDA的SIR ENDEC、与ISO7816兼容并具有LIN主/从功能。支持使用DMA操作。
**串行外设接口(SPI)**:多达2个SPI接口,在从或主模式下,全双工或半双工的通信速率可达18兆位/秒。3位预分频器可产生8种主模式频率,可配置成每帧8位或16位。硬件的CRC产生/校验支持基本的SD卡和MMC模式。支持通过使用DMA操作。
**控制器区域网络(CAN)**:CAN接口兼容规范2.0A和2.0B(主动),位速率达1兆位/秒。它可以接收和发送11位标识符的标准帧,也接收和发送29位标识符的扩展帧。具有2个接收FIFOs,3级14个可调节的滤波器。
**通用串行总线(USB)**:STM32F103xx增强型系列产品内嵌USB设备控制器,遵循全速USB设备(12兆位/秒)标准,端点可由软件配置,具有待机/恢复功能。USB专用的48MHz时钟由内部主PLL直接产生。
**通用输入输出接口(GPIO)**:每个GPIO管脚都可以由软件配置成输出(推拉或开路)、输入(带或不带卡拉或下拉)或其他功能口。多数GPIO管脚都与数字或模拟的外设共用。所有的GPIO管脚都有大电流通过能力。在需要的情况下,I/O管脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。在APB2上的I/O引脚可达18MHz的翻转速度。
**ADC(模拟/数字转换器)**:STM32F103xx增强型产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC有多达16个外部通道,可以实现单次或扫描转换。在扫描模式下,转换在选定的一组模拟输入上自动进行。ADC接口上额外的逻辑功能允许 :
- 同时采样和保持
- 交叉采样和保持
- 单次采样
ADC运行通过DMA操作。模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阈值时,将产生中断。由标准定时器(TIMx)和高级控制定时器(TIM1)生产的事件,可以分别内部联到ADC的开始触发、外部触发和DMA触发,以使应用程序能够同步AD转换和时钟。
温度传感器:温度传感器产生一个随温度线性变化的电压,转换范围在2V < VDDA < 3.6V之间。温度传感器在内部被连接到ADC12_INT16的输入通道上,用于将传感器的输出转换到数字数值。
**串行JTAG调式口(SWJ-DP)**:内嵌ARM的SWJ-DP接口和JTAG接口,JTAG的TMS和TCK信号分别与SWDIO和SWCLK共用管脚,TMS脚上的一个特殊信号序列用于在JTAG-DP和SWJ-DP间切换。
3、参考
文章来源: https://iotsmart.blog.csdn.net/article/details/123157271