
2.1 STM32F103xx增强型LQFP48引脚分布 - R9 i- `4 k+ [# u. e4 c ![]() 2.2 STM32F103xx概述 . w& N& Z8 u6 }# ? ~+ Y( M. U 2.2.1 ARM®的Cortex™-M3核心并内嵌闪存和SRAM R% V; R& G- g ARM的Cortex™-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。 ARM的Cortex™-M3是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。 & @# w: d% E" |: ]" y 2.2.2 内置闪存存储器 64K或128K字节的内置闪存存储器,用于存放程序和数据。小R使用的开发板内置闪存存储器为64K。 2.2.3 CRC(循环冗余校验)计算单元 CRC(循环冗余校验)计算单元使用一个固定的多项式发生器,从一个32位的数据字产生一个CRC码。在众多的应用中,基于CRC的技术被用于验证数据传输或存储的一致性。( H) }$ _5 m7 q; h; x$ u1 d( [. | " c$ _! y! k' w; E Z: ] ! f8 O: {/ b; t! F; C( _4 _ 2.2.4 内置SRAM 9 z! K6 F z s j8 T; r" u# T% p 20K字节的内置SRAM,CPU能以0等待周期访问(读/写)。 2.2.5 嵌套的向量式中断控制器(NVIC)% J1 ^" a! Z/ f& u9 i# d! t STM32F103xx增强型产品内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道(不包括16个Cortex™-M3的中断线)和16个优先级。 ● 紧耦合的NVIC能够达到低延迟的中断响应处理 ● 中断向量入口地址直接进入内核5 @4 m! H. Y* u# s4 c) F" `8 |1 v ● 紧耦合的NVIC接口 ● 允许中断的早期处理 * W/ P: @% D6 ~( y7 p ● 处理晚到的较高优先级中断 ● 支持中断尾部链接功能 ● 自动保存处理器状态 ● 中断返回时自动恢复,无需额外指令开销 该模块以最小的中断延迟提供灵活的中断管理功能。# W$ F3 h7 m2 i7 f: Z' _: n# n: V 9 b' L l3 J3 E8 V% L) n; @( x1 y # _! D. E+ f5 j) w6 y' a 2.2.6 外部中断/事件控制器(EXTI) 外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),并能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。! Y! W, x A8 A EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用I/O口连接到16个外部中断线。3 g; O7 s7 T# D4 B0 e* _, O : L4 d. w6 s) ^0 W 2.2.7 时钟和启动/ J+ r. x+ l/ N4 F , [& \& ?5 J3 h# X 系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的RC振荡器,如果使能了中断,软件可以接收到相应的中断。同样,在需要时可以采取对PLL时钟完全的中断管理(如当一个间接使用的外部振荡器失效时)。 ( [2 l* [% o0 i( T6 f) A) F 多个预分频器用于配置AHB的频率、高速APB(APB2)和低APB(APB1)区域。AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz。 7 Z; U" ]; k3 W; n/ V7 n 2.2.8 自举模式 o1 F9 n$ n$ y3 E1 Y 在启动时,通过自举引脚可以选择三种自举模式中的一种: 2 m8 q' i0 B( a+ } ● 从程序闪存存储器自举 ● 从系统存储器自举 1 J; B) d f" K- J! a5 j ● 从内部SRAM自举! |$ V E4 D3 r, q1 d 5 L Q ?+ K$ k) [* c* o) j1 w 自举加载程序(Bootloader)存放于系统存储器中,可以通过USART1对闪存重新编程。$ i7 Q' Z/ f+ d- @+ \, B 5 n$ ~- h2 p& Y8 k9 m + C7 O1 T. Q! U. o 2.2.9 供电方案4 F- X, C2 ~ i9 W) M6 N 5 @- w3 Z, P1 d' B8 x ● VDD = 2.0~3.6V:VDD引脚为I/O引脚和内部调压器供电。 ) |6 D+ v$ y% ]" ~0 t ● VSSA,VDDA = 2.0~3.6V:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时,VDDA不得小于2.4V。VDDA和VSSA必须分别连接到VDD和VSS。6 a1 ?- v# V* _" ]# i | 5 J I: N/ s! L* \4 H+ Y& l0 ^ ● VBAT = 1.8~3.6V:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。 2.2.10 供电监控器7 ]0 I& s$ f4 z+ C 本产品内部集成了上电复位(POR)/掉电复位(PDR)电路,该电路始终处于工作状态,保证系统在供电超过2V时工作;当VDD低于设定的阀值(VPOR/PDR)时,置器件于复位状态,而不必使用外部复位电路。% X* F8 Z0 w# x$ I# w 9 n& `. i# h8 T& x; R) y$ S2 e$ F 器件中还有一个可编程电压监测器(PVD),它监视VDD/VDDA供电并与阀值VPVD比较,当VDD低于或高于阀值VPVD时产生中断,中断处理程序可以发出警告信息或将微控制器转入安全模式。PVD功能需要通过程序开启。 2.2.11 电压调压器% U6 A$ u1 `. P0 e2 h3 R7 z 调压器有三个操作模式:主模式(MR)、低功耗模式(LPR)和关断模式 ● 主模式(MR)用于正常的运行操作/ ]- D& f9 h; `4 \7 L) K. u' R+ K * T5 ]1 r0 c F4 M: \' g& i ● 低功耗模式(LPR)用于CPU的停机模式 * s7 |; Q2 i7 w. \" m2 p ● 关断模式用于CPU的待机模式:调压器的输出为高阻状态。 2.2.12 低功耗模式5 I* e3 _/ O* p STM32F103xC、STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。* e3 s6 z* I: x 2.2.13 DMA9 _* v ]4 t. Y* B& R " E) S( e7 O; ]' E) p 灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。1 m* n6 D3 `6 L1 O - p8 @; w/ M+ P* n! e! q 每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。4 i9 c' k' {. r" J% l7 \8 c& S DMA可以用于主要的外设:SPI、I2C、USART,通用、基本和高级控制定时器TIMx和ADC。1 T1 D. b$ K, w0 R7 q 2.2.14 RTC(实时时钟)和后备寄存器 + I9 E2 l" w. g; ?7 Y7 ^ # u6 e u1 Y5 w z/ I ) T7 ]' {1 l+ ]+ s% b! _ 2.2.15 定时器和看门狗3 I5 I6 R1 t* t% t3 N7 A+ _ 中等容量的STM32F103xx增强型系列产品包含1个高级控制定时器、3个普通定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。8 w1 l& P) U6 Y9 r* }0 S 高级控制定时器(TIM1)可以被看成是分配到6个通道的三相PWM发生器,它具有带死区插入的互补PWM输出,还可以被当成完整的通用定时器。四个独立的通道可以用于: : F* J- u; Z, e- E) k; a ● 输入捕获4 q4 s$ r& F9 c8 Y b " q4 ^- W0 q; t7 a, S: Y, E4 W3 } ● 输出比较# D$ O. U) ~4 f3 l- s4 u5 A & {& }3 K2 L+ d& p ● 产生PWM(边缘或中心对齐模式) $ V, Y6 m, `* W5 b" a; U: Q# d ● 单脉冲输出 4 H6 g5 t( r4 Q/ j" o! s8 w 配置为16位标准定时器时,它与TIMx定时器具有相同的功能。配置为16位PWM发生器时,它具有全调制能力(0~100%)。 通用定时器(TIMx)5 |7 v7 B& a9 U7 z% G STM32F103xx增强型产品中,内置了多达3个可同步运行的标准定时器(TIM2、TIM3和TIM4)。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。 : j( C. W$ c# g, g6 A$ f( r 它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。5 H+ [/ K" C( |% O6 d, R, Q* j5 m1 [ 2 @: O' R6 h! [6 [! u9 ~# b; c3 [ 这些定时器还能够处理增量编码器的信号,也能处理1至3个霍尔传感器的数字输出。 2.2.16 IIC总线 3 a* w) u% d# j 多达2个I2C总线接口,能够工作于多主模式或从模式,支持标准和快速模式。I2C接口支持7位或10位寻址,7位从模式时支持双从地址寻址。内置了硬件CRC发生器/校验器。它们可以使用DMA操作并支持SMBus总线2.0版/PMBus总线。2 X; Y& N! Z: v8 \# l P 7 m, |( h8 T) Y, c : Z x' Q* K9 X 2.2.17 通用同步/异步收发器(USART): x5 ^7 D( `- O 6 C; c. ~1 d. ?1 G- a6 p- @2 c USART1接口通信速率可达4.5兆位/秒,其他接口的通信速率可达2.25兆位/秒。USART接口具有硬件的CTS和RTS信号管理、支持IrDA SIR ENDEC传输编解码、兼容ISO7816的智能卡并提供LIN主/从功能。8 l2 U- B, \; ?* d! O5 a ' {5 y' l& K2 ` 所有USART接口都可以使用DMA操作。: W$ M& P; e0 N; m8 o9 ]& `# j 2.2.18 串行外设接口(SPI)1 d+ U+ ?# w/ w 多达2个SPI接口,在从或主模式下,全双工和半双工的通信速率可达18兆位/秒。3位的预分频器可产生8种主模式频率,可配置成每帧8位或16位。硬件的CRC产生/校验支持基本的SD卡和MMC模式。所有的SPI接口都可以使用DMA操作。 N$ B; E; `) U1 m) F1 K* Y9 r 2.2.19 控制器区域网络(CAN) : g2 h+ b8 f y$ {( C( F, k. H5 Z' F2 V$ a CAN接口兼容规范2.0A和2.0B(主动),位速率高达1兆位/秒。它可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。8 W! X, u) X7 a$ k4 M9 M* z ( t2 [2 z. n# m 2.2.20 通用串行总线(USB)5 x5 {2 k4 |2 I" R STM32F103xx增强型系列产品,内嵌一个兼容全速USB的设备控制器,遵循全速USB设备(12兆位/秒)标准,端点可由软件配置,具有待机/唤醒功能。USB专用的48MHz时钟由内部主PLL直接产生(时钟源必须是一个HSE晶体振荡器)。 2.2.21 通用输入输出接口(GPIO)* p$ j) n" `+ J 4 ?, Z: i/ x+ Y' l. b i; d& d 每个GPIO引脚都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。 L, L4 ^0 G% ^ u 6 I- x/ q b5 x9 X' O 除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。 ; `" _# v. ~% P- m 在APB2上的I/O脚可达18MHz的翻转速度。 5 l: z, K# g; U: x j( Y, T) Z D# | b 2.2.22 ADC(模拟/数字转换器) STM32F103xx增强型产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,可以实现单次或扫描转换。在扫描模式下,自动进行在选定的一组模拟输入上的转换。$ q* y" v5 K2 T , o" @# p8 j4 Z* ]2 X# Y ADC接口上的其它逻辑功能包括:+ p) F: f# i, `* h ● 同步的采样和保持 ) o) e9 S3 K* J ● 交叉的采样和保持 K: T7 ^5 D4 u( m9 u) U3 w9 U ● 单次采样3 C8 I" b3 i! p8 f0 _ + v* d9 g3 F8 w* X" W ADC可以使用DMA操作。 1 L0 Q! E9 r: @1 D 模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。 2.2.23 温度传感器 温度传感器产生一个随温度线性变化的电压,转换范围在2V < VDDA < 3.6V之间。温度传感器在内部被连接到ADC12_IN16的输入通道上,用于将传感器的输出转换到数字数值。# c' f! C5 b; }# p4 B' L" O! c: [ 4 r/ F1 ? N { 2.2.24 串行单线JTAG调试口(SWJ-DP)' k* E* S; F4 P! \8 o 内嵌ARM的SWJ-DP接口,这是一个结合了JTAG和串行单线调试的接口,可以实现串行单线调试接口或JTAG接口的连接。JTAG的TMS和TCK信号分别与SWDIO和SWCLK共用引脚,TMS脚上的一个特殊的信号序列用于在JTAG-DP和SW-DP间切换。 A8 M1 s# T( e' ]8 {9 E 2.3 STM32F103xx增强型模块框图 ![]() 7 |4 k. r7 w6 @6 S' W0 @ ![]() 7 `; j/ v1 S, _6 m$ Z% C & x$ l0 N, l4 N/ [ 2.4 STM32F103xx时钟树 r- a/ h1 `! D5 Y+ P; j ![]() ![]() 6 d" p, N2 s- a " _0 m/ y# ]/ |9 C5 B " X7 n' |, L! y% h, N |