第02章--STM32F103微控制器PPT课件_第1页
第02章--STM32F103微控制器PPT课件_第2页
第02章--STM32F103微控制器PPT课件_第3页
第02章--STM32F103微控制器PPT课件_第4页
第02章--STM32F103微控制器PPT课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.1 STM32F1032.1 STM32F103概述概述2.2 STM32F103ZET62.2 STM32F103ZET6管脚定义管脚定义2.3 STM32F1032.3 STM32F103架构架构2.4 STM32F1032.4 STM32F103存储器存储器2.5 STM32F1032.5 STM32F103片内外设片内外设2.6 2.6 ST32F103ST32F103异常与中断异常与中断2.7 2.7 本章本章小结小结12021/7/232.1 STM32F103概述概述STM32F103ZET6芯片的主要特性如下:(1)集成了32位的ARM Cortex-M3内核,最高工作频率

2、可达72MHz,计算能力为1.25DMIPS/MHz(Dhrystone 2.1),具有单周期乘法指令和硬件除法器; (2)具有512kB片内FLASH存储器和64kB片内SRAM存储器; (3)内部集成了8MHz晶体振荡器,可外接416MHz时钟源; (4)2.0V3.6V单一供电电源,具有上电复位功能(POR);(5)具有睡眠、停止、待机等三种低功耗工作模式 ;(6)144管脚LQFP封装(薄型四边引线扁平封装);22021/7/23(7)内部集成了11个定时器:4个16位的通用定时器,2个16位的可产生PWM波控制电机的定时器,2个16位的可驱动DAC的定时器,2个加窗的看门狗定时器和1

3、个24位的系统节拍定时器(24位减计数);(8)2个12位的DAC和3个12位的ADC(21通道);(9)集成了内部温度传感和实时时钟RTC;(10)具有112根高速通用输入输出口(GPIO),可从其中任 选16根作为外部中断输入口,几乎全部GPIO可承受5V输入(PA0PA7、PB0PB1、PC0PC5、PC13PC15和PF6PF10除外);(11)集成了13个外部通信接口:2个I2C、3个SPI(18Mbps,其中复用2个I2S)、1个CAN(2.0B)、5个UART、1个USB 2.0设备和1个并行SDIO;32021/7/23 (12)具有12通道的DMA控制器,支持定时器、ADC、

4、DAC、SDIO、I2S、SPI、I2C和UART外设;(13)具有96位的全球唯一编号;(14)工作温度为40105; STM32F103家族中的其他型号芯片与STM32F103ZET6芯片相比,内核相同,工作频率相同,但片内FLASH存储器和SRAM存储器的容量以及片内外设数量有所不同,对外部的通信接口数量和芯片封装也各不相同,因此性价比也各不相同。值得一提的是,STM32F103xC、STM32F103xD和STM32F103xE(x=R,V或Z)这三个系列的相同封装的芯片是管脚兼容的,这种芯片兼容方式是芯片升级换代的最高兼容标准。 STM32F103系列微控制器主要用于电机控制、工业智

5、能控制、医疗设备、计算机外围终端和全球定位系统(GPS)等。42021/7/232.2 STM32F103ZET6管脚定义管脚定义芯片STM32F103ZET6为144管脚LQFP144封装,其外型如图2-1所示。图2-1 STM32F103ZET6外型52021/7/23图2-1可知,芯片STM32F103ZET6包括7个16位的通用目的输入输出口(GPIO),依次称为PA、PB、PC、PD、PE、PF和PG口,几乎每个GPIO口都复用了其他的功能(PG8和PG15例外)。芯片STM32F103ZET6的各个管脚的定义如表2-1所示。表2-1 芯片STM32F103ZET6的管脚定义序号管脚

6、编号管脚名称主要功能复用功能重映射功能PA口134PA0-WKUPPA0WKUP/USART2_CTS/ADC123_IN0/TIM2_CH1_ETR/TIM5_CH1/TIM8_ETR235PA1PA1USART2_RTS/ADC123_IN1/TIM5_CH2/TIM2_CH2336PA2PA2USART2_TX/TIM5_CH3/ADC123_IN2/TIM2_CH3437PA3PA3USART2_RX/TIM5_CH4/ADC123_IN3/TIM2_CH4540PA4PA4SPI1_NSS/USART2_CK/DAC_OUT1/ADC12_IN4641PA5PA5SPI1_SCK/D

7、AC_OUT2/ADC12_IN5742PA6PA6SPI1_MISO/TIM8_BKIN/ADC12_IN6/TIM3_CH1TIM1_BKIN843PA7PA7SPI1_MOSI/TIM8_CH1N/ADC12_IN7/TIM3_CH2TIM1_CH1N9100PA8PA8USART1_CK/TIM1_CH1/MCO10101PA9PA9USART1_TX/TIM1_CH262021/7/2311102PA10PA10USART1_RX/TIM1_CH312103PA11PA11USART1_CTS/USBDM/CAN_RX/TIM1_CH413104PA12PA12USART1_RTS/

8、USBDP/CAN_TX/TIM1_ETR14105PA13JTMS-SWDIOPA1315109PA14JTCK-SWCLKPA1416110PA15JTDISPI3_NSS/I2S3_WSTIM2_CH1_ETR/PA15/SPI1_NSSPB口1746PB0PB0ADC12_IN8/TIM3_CH3/TIM8_CH2NTIM1_CH2N1847PB1PB1ADC12_IN9/TIM3_CH4/TIM8_CH3NTIM1_CH3N1948PB2PB2/BOOT120133PB3JTDOSPI3_SCK/I2S3_CKPB3/TRACESWO/TIM2_CH2/SPI1_SCK21134PB

9、4NJTRSTSPI3_MISOPB4/TIM3_CH1/SPI1_MISO22135PB5PB5I2C1_SMBA/SPI3_MOSI/I2S3_SDTIM3_CH2/SPI1_MOSI23136PB6PB6I2C1_SCL/TIM4_CH1USART1_TX24137PB7PB7I2C1_SDA/FSMC_NADV/TIM4_CH2USART1_RX25139PB8PB8TIM4_CH3/SDIO_D4I2C1_SCL/CAN_RX26140PB9PB9TIM4_CH4/SDIO_D5I2C1_SDA/CAN_TX2769PB10PB10I2C2_SCL/USART3_TXTIM2_CH3

10、2870PB11PB11I2C2_SDA/USART3_RXTIM2_CH42973PB12PB12SPI2_NSS/I2S2_WS/I2C2_SMBA/USART3_CK/TIM1_BKIN3074PB13PB13SPI2_SCK/I2S2_CK/USART3_CTS/TIM1_CH1N72021/7/233175PB14PB14SPI2_MISO/TIM1_CH2N/USART3_RTS3276PB15PB15SPI2_MOSI/I2S2_SD/TIM1_CH3NPC口3326PC0PC0ADC123_IN103427PC1PC1ADC123_IN113528PC2PC2ADC123_IN

11、123629PC3PC3ADC123_IN133744PC4PC4ADC12_IN143845PC5PC5ADC12_IN153996PC6PC6I2S2_MCK/TIM8_CH1/SDIO_D6TIM3_CH14097PC7PC7I2S3_MCK/TIM8_CH2/SDIO_D7TIM3_CH24198PC8PC8TIM8_CH3/SDIO_D0TIM3_CH34299PC9PC9TIM8_CH4/SDIO_D1TIM3_CH443111PC10PC10UART4_TX/SDIO_D2USART3_TX44112PC11PC11UART4_RX/SDIO_D3USART3_RX45113PC

12、12PC12UART5_TX/SDIO_CKUSART3_CK467PC13-TAMPER-RTCPC13TAMPER-RTC478PC14-OSC32_INPC14OSC32_IN489PC15-OSC32_OUTPC15OSC32_OUTPD口49114PD0OSC_INFSMC_D2CAN_RX50115PD1OSC_OUTFSMC_D3CAN_TX51116PD2PD2TIM3_ETR/UART5_RX/SDIO_CMD52117PD3PD3FSMC_CLKUSART2_CTS53118PD4PD4FSMC_NOEUSART2_RTS54119PD5PD5FSMC_NWEUSART2_

13、TX55122PD6PD6FSMC_NWAITUSART2_RX56123PD7PD7FSMC_NE1/FSMC_NCE2USART2_CK5777PD8PD8FSMC_D13USART3_TX5878PD9PD9FSMC_D14USART3_RX5979PD10PD10FSMC_D15USART3_CK6080PD11PD11FSMC_A16USART3_CTS82021/7/236181PD12PD12FSMC_A17TIM4_CH1/USART3_RTS6282PD13PD13FSMC_A18TIM4_CH26385PD14PD14FSMC_D0TIM4_CH36486PD15PD15F

14、SMC_D1TIM4_CH4PE口65141PE0PE0TIM4_ETR/FSMC_NBL066142PE1PE1FSMC_NBL1671PE2PE2TRACECK/FSMC_A23682PE3PE3TRACED0/FSMC_A19693PE4PE4TRACED1/FSMC_A20704PE5PE5TRACED2/FSMC_A21715PE6PE6TRACED3/FSMC_A227258PE7PE7FSMC_D4TIM1_ETR7359PE8PE8FSMC_D5TIM1_CH1N7460PE9PE9FSMC_D6TIM1_CH17563PE10PE10FSMC_D7TIM1_CH2N7664P

15、E11PE11FSMC_D8TIM1_CH27765PE12PE12FSMC_D9TIM1_CH3N7866PE13PE13FSMC_D10TIM1_CH37967PE14PE14FSMC_D11TIM1_CH48068PE15PE15FSMC_D12TIM1_BKINPF口8110PF0PF0FSMC_A08211PF1PF1FSMC_A18312PF2PF2FSMC_A28413PF3PF3FSMC_A38514PF4PF4FSMC_A48615PF5PF5FSMC_A58718PF6PF6ADC3_IN4/FSMC_NIORD8819PF7PF7ADC3_IN5/FSMC_NREG892

16、0PF8PF8ADC3_IN6/FSMC_NIOWR9021PF9PF9ADC3_IN7/FSMC_CD9122PF10PF10ADC3_IN8/FSMC_INTR9249PF11PF11FSMC_NIOS169350PF12PF12FSMC_A69453PF13PF13FSMC_A79554PF14PF14FSMC_A89655PF15PF15FSMC_A9PG口9756PG0PG0FSMC_A109857PG1PG1FSMC_A119987PG2PG2FSMC_A1210088PG3PG3FSMC_A1392021/7/2310189PG4PG4FSMC_A1410290PG5PG5FSM

17、C_A1510391PG6PG6FSMC_INT210492PG7PG7FSMC_INT310593PG8PG8106124PG9PG9FSMC_NE2/FSMC_NCE3107125PG10PG10FSMC_NCE4_1/FSMC_NE3108126PG11PG11FSMC_NCE4_2109127PG12PG12FSMC_NE4110128PG13PG13FSMC_A24111129PG14PG14FSMC_A25112132PG15PG15电源、复位与时钟相关管脚11371VSS_1VSS_111472VDD_1VDD_1115107VSS_2VSS_2116108VDD_2VDD_21

18、17143VSS_3VSS_3118144VDD_3VDD_311938VSS_4VSS_412039VDD_4VDD_412116VSS_5VSS_512217VDD_5VDD_512351VSS_6VSS_612452VDD_6VDD_612561VSS_7VSS_712662VDD_7VDD_712783VSS_8VSS_812884VDD_8VDD_812994VSS_9VSS_913095VDD_9VDD_9131120VSS_10VSS_10132121VDD_10VDD_10133130VSS_11VSS_11134131VDD_11VDD_111356VBATVBAT13630

19、VSSAVSSA13733VDDAVDDA13831VREF-VREF-13932VREF+VREF+14025NRSTNRST141138BOOT0BOOT014223OSC_INOSC_IN14324OSC_OUTOSC_OUT144106NC(空管脚)102021/7/23表2-1中VSS_x(x1,2,.,11)接地,VDD_x(x=1,2,.,11)接2.0V3.6V电源,为芯片中数字电路部分提供能源;VBAT接1.8V3.6V电池电源,为RTC时钟提供能源;VDDA接模拟电源,VSSA接模拟地,为芯片中模拟电路部提供能源;VREF+和VREF-为ADC模拟参考电压正负输入端。BOO

20、T0和BOOT1(表2-1中序号19)用于选择STM32F103ZET6上电启动方式,如果BOOT0=0(BOOT1无效),则从FLASH存储器启动,此时FLASH存储器可从0 x0地址访问或从其物理地址0 x800 0000访问。如果BOOT01,则由BOOT1管脚的输入电平决定启动方式:如果BOOT10,则由系统存储器(System Memory)启动,此时系统存储器映射到0 x0地址处,可以从0 x0地址或从系统存储器的物理地址0 x1FFF F000处访问该存储器;如果BOOT11,则由片上SRAM存储器启动,访问地址为0 x2000 0000。一般地,配置BOOT00,即从片上FLA

21、SH启动。OSC_IN和OSC_OUT用于连接外部高精度晶体振荡器。NRST为芯片复位输入信号,低有效。112021/7/232.3 STM32F103架构架构STM32F103ZET6的内部结构如图2-2所示。图2-2 STM32F103ZET6内部结构框图122021/7/23STM32F103ZET6集成了Cortex-M3内核CPU,工作频率为72MHz,与CPU紧耦合的为嵌套向量中断控制器NVIC和跟踪调试单元,其中,调试单元支持标准JTAG和串行SW两种调试方式;16个外部中断源作为NVIC中断控制器的一部分。CPU通过指令总线直接到FLASH取指令,通过数据总线和总线阵列与FLA

22、SH和SRAM交换数据,DMA可以直接通过总线阵列控制定时器、ADC、DAC、SDIO、I2S、SPI、I2C和UART。Cortex-M3内核CPU通过总线阵列和高性能总线(AHB)以及AHBAPB(高级外设总线)桥与两类APB总线相连接,即APB1总线和APB2总线。其中,APB2总线工作在72MHz下,与它相连的外设有外部中断与唤醒控制、七个通用目的输入输出口(PA、PB、PC、PD、PE、PF和PG)、定时器1、定时器8、SPI1、USART1、3个ADC和内部温度传感器。其中,3个ADC和内部温度传感器使用VDDA电源。132021/7/23 APB1总线最高可工作在36MHz频率下

23、,与APB1总线相连的外设有看门狗定时器、定时器6、定时器7、RTC时钟、定时器2、定时器3、定时器4、定时器5、USART2、USART3、UART4、UART5、SPI2(I2S2)与SPI3(I2S3)、I2C1与I2C2、CAN、USB设备和2个DAC。其中,512B的SRAM属于CAN模块,看门狗时钟源使用VDD电源,RTC时钟源使用VBAT电源。STM32F103ZET6芯片内部具有8MHz和40kHz的RC振荡器,时钟与复位控制器和SDIO模块直接与AHB总线相连接。而静态存储器控制器(FSMC)直接与总线阵列相连接。在图2-2中,各个功能模块都有专用的工作时钟源,通过管理这些时

24、钟源使得这些模块处于工作状态还是低功耗状态。STM32F103ZET6芯片的时钟管理如图2-3所示。142021/7/23图2-3 STM32F103ZET6时钟管理152021/7/23在图2-3中,内部8MHz的时钟记为HSI,外部输入的416MHz(一般是8MHz)时钟记为HSE,内部的40kHz时钟记为LSI,外部输入的32.768kHz时钟称为LSE。STM32F103ZET6的时钟管理非常灵活。在图2-3的右下角,STM32F103ZET6芯片可向外部输出PLLCLK/2、HSE、HSI和SYSCLK四个时钟信号之一。从图2-3的左边向右边看过去,外部可接8MHz时钟(由OSC_I

25、N和OSC_OUT管脚接入)和32.768kHz时钟(由OSC32_IN和OSC32_OUT管脚接入)。系统时钟SYSCLK来自HSI、PLLCLK(PLL倍频器输入时钟)和HSE三个时钟源中的一个,其中,PLL倍频器的输入为HSI/2或PLLXTPRE选通的时钟信号(即OSC输出时钟或其二分频值)。SYSCLK直接送给I2S2、I2S3和AHB预分频器(分频值为1、1/2、1/3、.、1/512)。162021/7/23AHB预分频器的输出时钟供给SDIO、FSMC、APB1外设、APB2外设和ADC等,同时,AHB预分频器的输出时钟还直接作为AHB总线、Cortex内核、存储器和DMA的H

26、CLK时钟,并作为Cortex内核自由运行时钟FCLK,1/8分频后作为Cortex系统定时器时钟源。APB1预分频器的输出时钟作为APB1外设的时钟源,并且经“定时器27倍频器”倍频后作为定时器27的时钟源。此外,RTC定时器的时钟源为HSE/128、LSE或LSI之一,看门狗定时器由LSI提供时钟。APB2预分频器的输出时钟作为APB2外设的时钟源,经“定时器1和8倍频器”倍频后作为定时器1和8的时钟源,经ADC预分频器后作为ADC1、ADC2和ADC3的时钟源。AHB预分频器的输出时钟二分频后,用作SDIO与AHB总线的接口时钟。需要指出的是,每个外设的时源受“外设时钟控制”寄存器管理,

27、可以单独打开或关闭时钟源。172021/7/232.4 STM32F103存储器存储器STM32F103ZET6芯片的存储器配置如图2-4所示。序号APB外设起始偏移地址序号APB外设起始偏移地址1TIM20 x0 000024AFIO0 x1 00002TIM30 x0 040025EXTI0 x1 04003TIM40 x0 080026Port A0 x1 08004TIM50 x0 0C0027Port B0 x1 0C005TIM60 x0 100028Port C0 x1 10006TIM70 x0 140029Port D0 x1 14007RTC0 x0 280030Port

28、E0 x1 18008WWDG0 x0 2C0031Port F0 x1 1C009IWDG0 x0 300032Port G0 x1 200010SPI2/I2S20 x0 380033ADC10 x1 240011SPI3/I2S30 x0 3C0034ADC20 x1 280012USART20 x0 440035TIM10 x1 2C0013USART30 x0 480036SPI10 x1 300014UART40 x0 4C0037TIM80 x1 340015UART50 x0 500038USART10 x1 380016I2C10 x0 540039ADC30 x1 3C00

29、17I2C20 x0580040SDIO0 x1 800018USB0 x0 5C0041DMA10 x2 000019USB/CAN共享0 x0 600042DMA20 x2 040020BxCAN0 x0 640043RCC0 x2 100021BKP0 x0 6C0044FLASH接口0 x2 200022PWR0 x0 700045CRC0 x2 300023DAC0 x0 7400表2-2 APB外设映射的存储空间(基地址为0 x4000 0000,大小均为1kB,即0 x400)182021/7/23由图2-4可知,STM32F103ZET6芯片是32位的微控制器,可寻址存储空间大

30、小为2324GB,分为8个512MB的存储块,存储块0的地址范围为0 x00 x1FFF FFFF,存储块1的地址范围为0 x2000 0000 0 x3FFF FFFF,依次类推,存储块7的地址范围为0 xE000 00000 xFFFF FFFF。STM32F103ZET6芯片的可寻址空间大小为4GB,但是并不意味着0 x00 xFFFF FFFF地址空间均可以有效的访问,只有映射了真实物理存储器的存储空间才能被有效地访问。对于存储块0,如图2-4所示,片内FLASH映射到地址空间0 x0800 00000 x0807 FFFF(512kB大小),系统存储器(System Memory)映

31、射到地址空间0 x1FFF F0000 x1FFF F7FF(2kB大小),用户选项字节(Option Bytes)映射到地址空间0 x1FFF F8000 x1FFF F80F(16字节大小)。192021/7/23同时,地址范围0 x00 x7 FFFF,根据启动模式要求,可以作为FLASH或系统存储器的别名访问空间,例如,BOOT00时,片内FLASH同时映射到地址空间0 x00 x7 FFFF和地址空间0 x0800 00000 x0807 FFFF,即地址空间0 x00 x7 FFFF是FLASH存储器。除这些之外,其他的空间是保留的。512MB的存储块1中只有地址空间0 x2000

32、 00000 x2000 FFFF映射了64kB的SRAM存储器,其余空间是保留的。尽管STM32F103ZET6微控制器具有两个APB总线,且这两个总线上的外设访问速度不同,但是,芯片存储空间中并没有区别这两个外设的访问空间,而是把全部APB外设映射到存储块2中,每个外设的寄存器占居1kB大小的空间,如表2-2所示。除了表2-2中的地址空间外,存储块2中其他空间是保留的。202021/7/23表2-2中的“USB/CAN共享”对应的1kB存储空间,对于CAN而言,实际上只有512B字节的SRAM空间。STM32F103ZET6芯片的一个特色在于其对外部静态存储器的支持,存储块35都是为访问外

33、部灵活的静态存储器(FSMC)服务的,其中,存储块3包含了FSMC块1和块2,存储块4包括了FSMC块3和块4,这四个FSMC块直接对应外部映射的静态存储器,如表2-3所示。序号FSMC类型地址范围大小(MB)1NOR/PSRAM1(FSMC块1)0 x6000 00000 x63FF FFFF642NOR/PSRAM2(FSMC块1)0 x6400 00000 x67FF FFFF643NOR/PSRAM3(FSMC块1)0 x6800 00000 x6BFF FFFF644NOR/PSRAM4(FSMC块1)0 x6C00 00000 x6FFF FFFF645NAND1(FSMC块2)0

34、 x7000 00000 x7FFF FFFF2566NAND2(FSMC块3)0 x8000 00000 x8FFF FFFF2567PCCARD(FSMC块4)0 x9000 00000 x9FFF FFFF256表2-3 FSMC块与映射的静态存储器212021/7/23需要注意的是,如果某个FSMC块中映射了真实的物理静态存储器,但是映射的物理存储器的大小比FSMC块的空间要小得多,则实际上能访问的空间取决于物理静态存储器的空间。例如,FSMC块1中映射了物理的NOR型存储器,但是NOR型存储器没有64MB大小,假设只有8MB大小,那么,该FSMC块1中只能有效地访问这8MB的空间。存

35、储块5中只有地址范围0 xA000 00000 xA000 0FFF映射了FSMC寄存器区,其余空间保留。存储块6保留。存储块7被Cortex-M3内核的内部外设占用。存储区使用小端(Little-Endian)模式存储,对于一个32位的字存储区,可存入字、半字(16位)或字节数据,存入字数据时,字数据的低字节存入字存储区的低地址,字数据的高字节存入字存储区的高地址。222021/7/23对于Cortex-M3而言,存储区中地址范围0 x2000 00000 x200F FFFF(1MB大小)的存储空间被映到地址范围0 x2200 00000 x23FF FFFF(32MB大小)的位带区存储空

36、间,其对应关系为A=0 x2200 0000+(W-0 x2000 0000)32+k4,即存储区中地址范围0 x2000 00000 x200F FFFFW中的地址W的第k位(记为W.k)对应着位带区中的地址A,对该地址(32位)的访问相当于访问W.k,即向A写入1,则W.k置1;向A写入0,则W.k清0。读出A相当于读出W.k。对于STM32F103ZET6而言,存储区为0 x2000 00000 x2000 FFFF。同理,存储区中地址范围0 x4000 00000 x400F FFFF(1MB大小)的存储空间被映射到地址范围0 x4200 00000 x43FF FFFF,对应关系为A

37、=0 x4200 0000+(W-0 x4200 0000)32+k4,将存储区0 x4000 00000 x400F FFFF中的W地址的第k位(W.k)映射到位带区字地址A。位带区的每个字地址的内容只有第0位有效,其余的第31:1位保留。232021/7/23图2-4 STM32F103ZET6存储器配置(摘自STM32F103数据手册)242021/7/232.5 STM32F103片内外设片内外设STM32F103ZET6微控制器片内具有多种高速总线,其中,指令总线(ICode Bus)简称I-Bus,连接FLASH存储器指令接口和Cortex-M3内核;数据总线(DCode Bus)

38、简称D-Bus,连接FLASH存储器数据接口和Cortex-M3内核;系统总线(System Bus)简称S-Bus,通过总线阵列(Bus Matrix)与DMA、AHB和APB总线相连接;DMA总线(DMA-Bus)连接DMA控制器和总线阵列;高性能总线(AHB)通过AHB-APB桥与高级外设总线(APB)相连接,AHB总线与总线阵列相连接。复杂而高效的总线系统是STM32F103ZET6高性能的基本保障。STM32F103ZET6微控制器的片内外设有CRC(循环冗余校验)计算单元、复位与时钟管理单元、通用目的和替换功能输入输出口(GPIO和AFIO)单元、ADC、DAC、DMA控制器、高级

39、控制定时器TIM1和TIM8、通用目的定时器TIM2TIM5、基本定时器TIM6和252021/7/23CRCCRC计算单元计算单元用于计算给定的32位长的字数据的CRC校验码,生成多项式为x32+x26 +x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,即0 x04C1 1DB7,CRC计算单元共有3个寄存器,即数据寄存器CRC_DR(偏移地址为0 x0,复位值:0 xFFFF FFFF,基地址为0 x40023000),用于保存需要校验的32位长的数据,读该寄存器可读出前一个数据的CRC32校验码;独立的数据寄存器CRC_IDR(偏移地址:0 x04,

40、复位值:0 x0000 0000),只有低8位有效,用作通用数据寄存器;控制寄存器CRC_CR(偏移地址:0 x08,复位值:0 x0000 0000),只有第0位有效,写入1时复位CRC计算单元,使CRC_DR的值为0 xFFFF FFFF。TIM7、实时时钟(RTC)、独立看门狗(IWDG)、窗口看门狗(WWDG)、静态存储控制器(FSMC)、SDIO、USB设备、bxCAN、串行外设接口SPI、I2C接口、通用同步异步串行口USART、芯片唯一身份号寄存器(96位长)等。262021/7/23复位与时钟管理单元(复位与时钟管理单元(RCCRCC)是使用STM32F103ZET6芯片必须首

41、先学习的模块,因为芯片上电复位后,需要做的第一步工作是把工作时钟调整到72MHz(事实上,在Keil MDK工程中,这一步由Keil MDK软件提供的函数SystemInit自动实现的),这是通过配置RCC单元的寄存器实现的。RCC单元的寄存器包括:时钟控制寄存器(RCC_CR)、时钟配置寄存器(RCC_CFGR)、时钟中断寄存器(RCC_CIR)、APB2外设复位寄存器(RCC_APB2RSTR)、APB1外设复位寄存器(RCC_APB1RSTR)、AHB外设时钟有效寄存器(RCC_AHBENR)、APB2外设时钟有效寄存器(RCC_APB2ENR)、APB1外设时钟有效寄存器(RCC_AP

42、B1ENR)、备份区控制寄存器(RCC_BDCR)和控制与状态寄存器(RCC_CSR)。在后续章节中会用到其中的某些寄存器,在那里会详细阐述。272021/7/23通用目的输入输出(通用目的输入输出(GPIOGPIO)单元)单元是STM32F103ZET6芯片与外部进行通信的主要通道,可以读入或输出数字信号,作为输入端口时,有上拉有效、下拉有效或无上拉无下拉的悬空工作模式;作为输出端口时,支持开漏和推挽工作模式。GPIO单元的寄存器包括:2个32位的配置寄存器(GPIOx_CRL和GPIOx_CRH)、2个32位的数据寄存器(GPIOx_IDR和GPIOx_ODR)、1个32位的置位和清零寄存

43、器(GPIOx_BSRR)、1个16位的清零寄存器(GPIOx_BRR)和1个32位的锁定寄存器(GPIOx_LCKR)。这里的x取为AG中的一个字母,表示端口号。复用GPIO口的替换功能输入输出(替换功能输入输出(AFIOAFIO)单元)单元需要借助GPIO配置寄存器将端口配置为合适的工作模式,特别是作为输出端口时,有相应的替换功能下的开漏和推挽工作模式。282021/7/23在图1-2中曾提到从112个GPIO口中可任先16个作为外部中断输入端,选取工作由配置AFIO_EXTICR41寄存器实现,这四个寄存器的结构类似,均只有低16位有效,分成4个四位组,即四个寄存器共有16个四位组,依次

44、记为EXTI153:0、EXTI143:0、EXTI133:0、EXTI23:0、EXTI13:0、EXTI03:0,分别对应着GPIO口的第15、14、13、2、1、0管脚,每个四位组中的值(只能设为0000b0110b)对应的端口号AG。例如,设定PE4为外部中断输入口,则AFIO_EXTICR2的EXTI43:0设为0100b。AFIO单元相关的寄存器有事件控制寄存器(AFIO_EVCR)、替换功能重映射和调试IO口配置寄存器(AFIO_MAPR)、外部中断配置寄存器1(AFIO_EXTICR1)、外部中断配置寄存器2(AFIO_EXTICR2)、外部中断配置寄存器3(AFIO_EXTI

45、CR3)、外部中断配置寄存器4(AFIO_EXTICR4)、替换功能重映射和调试IO口配置寄存器2(AFIO_MAPR2)。292021/7/23STM32F103ZET6芯片共有8个定时器定时器,其中,TIM1和TIM8称为高级控制定时器,TIM2TIM5称为通用定时器,TIM6和TIM7称为基本定时器,如表2-4所示。STM32F103ZET6有3个ADCADC单元单元和2个DACDAC单元单元,对于ADC单元而言,外部有8个ADC1、ADC2和ADC3共用的输入端口(以ADC123_INx表示,x=0,1,2,3,10,11,12,13),8个ADC1和ADC2共用的输入端口(以ADC1

46、2_INx表示,x=4,5,6,7,8,9,14,15)和5个ADC3专用的输入端口(以ADC3_INx表示,x=4,5,6,7,8)。此外,内部温度传感器的模拟输出电压值送到ADC1_IN16内部端口。对天DAC单元而言,两个DAC各有一个模拟输出口,分别为DAC_OUT1和DAC_OUT2。定时器分辨率计数方式分频值DMA控制捕获/比较通道互补输出TIM1TIM816位加计数减计数加/减计数165536有4有TIM2TIM3TIM4TIM516位加计数减计数加/减计数165536有4无TIM6TIM716位加计数165536有无无表2-4 STM32F103ZET6定时器302021/7/

47、23除了定时器外,STM32F103ZET6芯片还集成了RTCRTC时钟时钟,主要用于产生日期和时间;集成了2个看门狗定时器,用于监测软件运行错误,其中独立看门狗定时器(独立看门狗定时器(IWDGIWDG)具有独立的片内40kHz时钟源,带窗口喂狗的看门狗定时器(带窗口喂狗的看门狗定时器(WWDGWWDG)可以避免发生喂狗程序工作正常而其他程序模块错误的情况发生。除了上述的片内功能模块外,STM32F103ZET6还具有与外部进行数据通信的外设模块,这些模块需要专用的通信时序和协议,包括3个通用同步异步串行口(USART1、USART2和USART3)、2个通用异步串口行(UART4和UART

48、5)、2个I2C总线接口、3个串行外设接口(SPI1、SPI2和SPI3,其中SPI2和SPI3可作为I2S接口)、1个SDIO接口、1个CAN接口、1个USB设备接口和外部静态存储器接口模块。312021/7/23在STM32F103ZET6芯片的地址0 x1FFF F7E0处的半字存储空间中保存了芯片FLASH空间的大小,可以使用语句“v=*(unsigned short *)0 x1FFFF7E0);”读出,这里v为无符号16位整型变量,对于STM32F103ZET6,v的值为0 x0200(表示512kB)。在地址0 x1FFF F7E8开始的12个字节里保存了芯片的身份号芯片的身份号

49、,该编号是全球唯一的,可使用语句“v1 = *(unsigned int *) (0 x1FFFF7E8 + 0 x00); v2 = *(unsigned int *) (0 x1FFFF7E8 + 0 x04); v3=*(unsigned int *) (0 x1FFFF7E8 + 0 x08);”读出,此处,v1、v2和v3为无符号32位整型变量,这里读出的值为:v1=0 x05D7FF38,v2=0 x39354E4B,v3=0 x51236736,即所使用的芯片的96位长唯一身份号为“5123673639354E4B05D7FF38H”。322021/7/232.6 STM32F1

50、03异常与中断异常与中断STM32F103ZET6微控制器具有10个异常和60个中断,中断优先级为16级。异常与中断的地址范围为0 x00 x012C,如表2-5所示。中断号优先级地址异常/中断名描述0 x000保留30 x004Reset复位异常20 x008NMI不可屏蔽异常10 x00CHardFault系统硬件访问异常00 x010MemManage存储管理异常10 x014BusFault总线访问异常20 x018UsageFault未定义指令异常0 x01C0 x02B保留30 x02CSVC系统服务调用异常40 x030DebugMon调试器异常0 x034保留50 x038Pe

51、ndSV请求系统服务异常60 x03CSysTick系统节拍定时器异常070 x040WWDG加窗看门狗中断180 x044PVD可编程电压检测中断290 x048TAMPER备份寄存器篡改中断3100 x04CRTC实时时钟中断4110 x050FLASHFLASH中断5120 x054RCCRCC中断6130 x058EXTI0外部中断07140 x05CEXTI1外部中断18150 x060EXTI2外部中断29160 x064EXTI3外部中断310170 x068EXTI4外部中断411180 x06CDMA1_Channel1DMA1通道1中断12190 x070DMA1_Chan

52、nel2DMA1通道2中断13200 x074DMA1_Channel3DMA1通道3中断14210 x078DMA1_Channel4DMA1通道4中断15220 x07CDMA1_Channel5DMA1通道5中断332021/7/2316230 x080DMA1_Channel6DMA1通道6中断17240 x084DMA1_Channel7DMA1通道7中断18250 x088ADC1_2ADC1和ADC2中断19260 x08CUSB_HP_CAN_TXUSB高优先或CAN发送中断20270 x090USB_LP_CAN_RX0USB低优先或CAN接收0中断21280 x094CAN_RX1CAN接收1中断22290 x098CAN_SCECAN SCE中断23300 x09CEXTI9_5外部中断5924310 x0A0TIM1_BRK定时器1中止中断25320 x0A4TIM1_UP定时器1更新中断26330 x0A8TIM1_TRG_COM定时器1跳变中断27340 x0ACTIM1_CC定时器1捕获比较中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论