单片机stm32参考手册中文_第1页
单片机stm32参考手册中文_第2页
单片机stm32参考手册中文_第3页
单片机stm32参考手册中文_第4页
单片机stm32参考手册中文_第5页
已阅读5页,还剩529页未读 继续免费阅读

下载本文档

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

文档简介

参考手册小,中和大容量的STM32F101xx,STM32F102xx和ARM内核32位高性能微控制器导本参考手册针对应用开发,提供关于如何使用小容量、中容量和大容量的STM32F101xx、STM32F102xx或者STM32F103xx微控制器的器和外设的详细信息。在本参考手册中关于ARMCortex™-M3内核的具体信息,请参考Cortex™-M3技术参考手册。相关文档 *感谢万利提供原始翻译文 嵌入式 CRC计算单元 电源控制 备份寄存器 备份数据寄存器x(BKP_DRxx1 6复位和时钟控制 7 通用复用功能 )( )( )( )( )( )( )( I2C1 外部中断 中 软件中断寄存器外部中断 DTRx)(x= 模拟/数字转换 ADC注入数据寄存器x(ADC_JDRx)(x= 数字/模拟转换 产生六 通用定时器

实时时钟 TH 独立看门狗

灵活的静态器控制器 支持的器和操 外部器接口信 外部器接口信 SDI/O模 中止 USB全速设备接口 控制器局域网 串行外设接口 SPI和I2S主要特 I2S功 关闭 I2S功能描I2S功能描I2SI2SI2S中 SPI和I2S寄存器描 SPI控制寄存器1(SPI_CR1)(I2S模式下不使用 SPI状态寄存器 SPI数据寄存器 SPIRxCRC寄存器 SPITxCRC寄存器 SPI_I2S配置寄存器 SPII2C I2C简 I2C I2C I2C从模 I2C主模 I2C I2C I2C 状态寄存器2 I2C通用同步异步收发器 发送 477 校验控 智能 IrDASIRENDEC功能 硬件流控 器件电子签 调试支持 概 SWJ调试端口(serialwireand ID代码和锁定机 边界扫描 SW-DP状态机(Resetidlestates,ID (端口26.1026.1126.12FPB(Flashpatch26.13DWT(datawatchpoint26.14ITM(instrumentationtrace 26.15MCU调试模块 支持定时器、看门狗、bxCAN和I2C的调 26.16TPIU(traceportinterface 26.16.1026.17DBG寄存器描述表中使用的缩写列表read/writeRead-onlyread/clearread/cleartoggle术语表量或者大容量STM32F101xx和STM32F103xx以及小容量和中容量STM32F102xx的。 器和总线构AHBAPB的桥(AHB2APBx)APB设备图 系统结ICode总线DCode总线该总线将orex-3内核的Doe总线与闪存器的数据接口相连接(常量加载和调试访。系统总线 DMA总线此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到总线矩阵此总线矩阵协调内核系统总线和DMA主控总线之间的仲裁。此仲裁利用轮换算法。此总线矩阵由四个驱动部件(CUDe、系统总线、D1总线和DM2总线)四个件(闪存(LT)、RM、FM和H2构成。AHB/APB桥有关连接到每个桥的不同外设的地址映射请参考表1。在每一次复位以后,所有除SRAM和注意:当对APB寄存器进行8位或者16位时,该会被自动转换成32位的:桥会自动将8位或数据字节以小端格式存放在器中。一个字里的最低地址字节被认为是该字的最低有效字节,而最高地址字节是最高有效字节。其他所有没有分配给片上器和外设的器空间都是保留的地址空间,请参考相应器件的中的器映像图。请参考相应器件的中的器映像图。表1列出了所用STM32F10xxx中内置外设的起表 外总0x40023400-0x40020x40023000-0x40020x40022000-0x4002闪存器接0x40021400-0x40020x40021000-0x40020x40020800-0x40020x40020400-0x40020x40020000-0x40020x40018400-0x40010x40018000-0x40010x40014000-0x40010x40013C00-0x40010x40013800-0x40010x40013400-0x40010x40013000-0x40010x40012C00-0x40010x40012800-0x40010x40012400-0x40010x40012000-0x40010x40012000-0x4001GPIO端口0x40011800-0x4001GPIO端口0x40011400-0x4001GPIO端口0x40011000-0x4001GPIO端口0X40010C00-0x4001GPIO端口0x40010800-0x4001GPIO端口0x40010400-0x40010x40010000-0x40010x40007800-0x40007400-0x40000x40007000-0x40000x40006C00-0x40000x40006800-0x40000x40006400-0x40000x40006000-0x40000x40005C00-0x40000x40005800-0x40000x40005400-0x40000x40005000-0x40000x40004C00-0x40000x40004800-0x40000x40004400-0x40000x40004000-0x40000x40003C00-0x40000x40003800-0x40000x40003400-0x40000x40003000-0x40000x40002C00-0x40000x40002800-0x40000x40001800-0x40000x40001400-0x40000x40001000-0x40000x40000C00-0x40000x40000800-0x40000x40000400-0x40000x40000000-0x4000嵌入式STM32F10xxx内置64K字节的静态SRAM。它可以以字节、半字(16位)或全字(32位)位Cortex™-M3器映像包括两个位段(bit-band)区。这两个位段区将别名器区中的每个字映射到位段器区的一个位,在别名区写入一个字具有对位段区的目标位执行读-改-写操bit_word_addr=bit_band_base+(byte_offsetx32)+(bit_number×例子 的字节中的位 = +(0x300*32)+ 字节的位执行读-改-写操作有着相 字节的位的值(0x01或0x00)。嵌入式闪存 块为4Kbx64位,每个主 块划分为32个1K字节的页。 块为16Kbx64位,每个主 块划分为128个1K字节的页。 表 页0x08000000-0x0800页0x08000400-0x0800页0x08000800-0x0800页0x08000C00-0x0800页0x08001000-0x0800………………页0x08001000-0x08000x1FFFF000-0x1FFF0x1FFFF800-0x1FFF0x40022000-0x400240x40022004-0x400240x40022008-0x400240x4002200C-0x400240x40022010-0x400240x40022014-0x400240x40022018-0x400240x4002201C-0x400240x40022020-0x40024表 页0x08000000-0x0800页0x08000400-0x0800页0x08000800-0x0800页0x08000C00-0x0800页0x08001000-0x0800………………页0x0801FC00-0x08010x1FFFF000-0x1FFF0x1FFFF800-0x1FFF0x40022000-0x400240x40022004-0x400240x40022008-0x400240x4002200C-0x400240x40022010-0x400240x40022014-0x400240x40022018-0x400240x4002201C-0x400240x40022020-0x40024表 页0x08000000-0x0800页0x08000800-0x0800页0x08001000-0x0800页0x08000C00-0x0800页0x08001800-0x0800………………页0x0801F800-0x08010x1FFFF000-0x1FFF0x1FFFF800-0x1FFF0x40022000-0x400240x40022004-0x400240x40022008-0x400240x4002200C-0x400240x40022010-0x400240x40022014-0x400240x40022018-0x400240x4002201C-0x400240x40022020-0x40024注 有关闪存寄存器的详细信息,请参考《STM32F10xxx闪存编程手册闪存24)4)CUCU2: 1.这些选项应与闪存器的时间一起使用。等待周期体现了系统时钟(YCL)频率与闪存的系:0等待周期,当0<SYSCLK<1等待周期,当24MHz<SYSCLK2等待周期,当48MHz<SYSCLK2.半周期配置不能与使用了预分频器的AHB一起使用,时钟系统应该等于HCLK时钟。该特性只能用在时钟频率为8MHz或低于8MHz时,可以直接使用的内部RC振荡器(H),或者是主振荡器(HSE),但不能用PLL。当AHB预分频系数不为1时,必须置预取缓冲区处于开启状态预取缓冲器的打开和关闭操作只有在系统时钟(SYSCLK)小于24MHz时才能执行。一般而言,预取缓冲器的打开和关闭操作在初始化过程中执行,这时微控制器的时钟由8MHz的内部RC振荡器(H)提供。使用DMA:DMA在DCode总线问闪存器,它的优先级比Ce上的取指高。DMA在每次传送完成后具有一个空余的周期。有些指令可以和DMA传输一起执行。编程和擦除闪存注 有关闪存器的操作和寄存器配置,请参考STM32F10xxx闪存编程手册说X001系统说X001系统11内嵌为需要的启动配置。在启动延迟之后,CPU从地址0x00000000获取堆栈顶的地址,并从启动器的0x00000004指示的地址开始执行代码。因为固定的器映像,代码区始终从地址0x0000开始(通过oe和oe总线),而数据区(RM)始终从地址2000开始(通过系统总线)。oreM3的CU始终从oe总线获取复位向量,即启动仅适合于从代码区开始(典型地从lsh启动)。TF0xx微控制器实现了一个特殊的机制,系统可以不仅仅从Flah器或系统器启动,还可以从内置RM从主闪存器启动:主闪存器被映射到启动空间(0x00000000),但仍然能够在它原有的地址(0x08000000)它,即闪存器的内容可以在两个地址区域,0x00000000或0x08000000。 地址(0x1FFFF000) 注意:当从内置RAM启动,在应用程序的初始化代码中,必须使用NVC的异常表和偏移寄存器,从R内嵌的自举程序内嵌的自举程序用于通过USART1串行接口对闪存器进行重新编程。这个程序位于系统存CRC计算单元小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和CRC简介在其他的应用中,CRC技术主要应用于核实数据传输或者数据的正确性和完整性。标准EN/IEC60335-1即提供了一种核实闪存器完整性的方法。CRC计算单元可以在程序运行时CRC主要—X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X4+X2+X图 CRC功能计算进行时会暂停CPU,无需加入软件等待周期,因此可以对寄存器CRC_DR可以通过把寄存器CRC_CR的RESET位置’0’来重置寄存器CRC_DR为0xFFFFFFFF。该操作CRC寄存数据寄存器复位值:0x0000 876543210 位31独立数据寄存器复位值:0x0000保 保保 保 位位电源控制小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和电图 电源框注 VDDA和VSSA必须分别联到VDD和VSS独立的A/D转换器供电和参考电压为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和来自印刷电路板上的毛刺如果有VREF-引脚(根据封装而定),它必须连接到VSSA100脚和144脚封装:为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压ADC到VREF+VREF-脚上。在VREF+的电压范围为2.4V~VDDA64脚或更少封装:没有VREF+和VREF-引脚,他们在内部与ADC的电源(VDDA)和地(VSSA)相联电池备份区域T脚也为RC、E振荡器和C3至15供电,这保证当主要电源被切断时RC能继续工作。切换到T如果应用中没有使用外部电池,VBAT必须连接到VDD引脚上在DD上升阶段(RTTO)或者探测到D之后,T和DD之间的电源开关仍会保持连接在T。在D上升阶段,如果DD在小于RTTO的时间内达到稳定状态(关于RTTO可参考数),且DD>T+06DD和T。如果与T连接的电源或者电池不能承受这样的注入电流,强烈建议在外部T和电源之间连接一个低压降二极管。当备份区域由VDD(内部模拟开关连到VDD)供电时,下述功能可用注: 因为模拟开关只能通过少量的电流(3m),使用PC13至PC15的O口功能是有限制的:同一时间内只有一个O口可以作为输出,速度必须限制在2MHz以下,最大负载为30pF,而且这些口绝不能当作电流源(如驱动LED)。电压调节器上电复位(POR)和掉电复位TM2内部有一个完整的上电复位()和掉电复位(D)电路,当供电电压达到2V时系统既图 可编程电压监测器用户可以利用D对DD电压与电源控制寄存器(RR)中的L20]位进行比较来电源,这几选择电压的值。电源控制/状态寄存器(WC)中的DO标志用来表明DD是高于还是低于D的电压阀值。该在内部连接到外部中断的第6线,如果该中断在外部中断寄存器中是使能的,该事件就会产生中断。当DD下降到D阀值以下和(或)当DD上升到D阀值之上时,根据外部中断第16线的上升下降边沿触发设置,就会产生D中断。例如,这一特性可用于用于执行紧急关闭任务。图5PVD部时。用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最模唤模唤睡CPU时钟关,对其他时钟和ADC时钟无影无开停任一外部中断(在外部中断寄存器中设所有使用1.8V的区域的时钟都已关闭,HSIHSE的振荡进行开关设置依待WKUP引脚的上升沿、RTC警告事件、NRST引脚上外部复位、IWDG复关降低系统时钟在运行模式下,通过对预分频寄存器进行编程,可以降低任意一个系统时钟(SYSCLK外部时钟的控制通过设置AHB外设时钟使能寄存器(RCC_AHBENRAPB1外设的时钟使能寄存器进入睡眠模式退出睡眠模式如果执行WFE指令进入睡眠模式,则一旦发生唤醒时,微处理器都将从睡眠模式退出。唤醒可以通过下述方式产生:表8SLEEP-NOWSLEEP-NOW说进SLEEPDEEP0SLEEPONEXIT=退唤醒:参考唤醒管无表9SLEEP-ON-EXITSLEEP-ON_EXIT说进SLEEPDEEP0SLEEPONEXIT=退唤醒:参考唤醒管无HSERC振荡器的功能被,SRAM和寄存器内容被保留下来。进入停止模式退出停止模式表 停止模说进退(I中必须使能)量表待机模式可实现系统的最低功耗。该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个进入待机模式退出待机模式当一个外部复位(RT引脚)、DG复位、WUP引脚上的上升沿或RC闹钟发生时,微控制器从待机模式退出。从待机唤醒后,除了电源控制/状态寄存器(_CR)所有寄存器被复位。说进说进退 待机模式下的输入/输出端口状态调试模式默认情况下,如果在进行调试微处理器时,使微处理器进入停止或待机模式,将失去调试连接。这是因为rex低功耗模式下的自动唤醒(RCC_BDCR)的RTCSEL[1:0]位的编程,三个RTC时钟源中的二个时钟源可以选作实现此功电源控制寄存器电源控制寄存器复位值:0x00000000从待机模式唤醒时清除保 保 保 rc_w1 电源控制/状态寄存器(保 保 保保 位0该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)PWR寄存器地址映像表 76543210000备份寄存器小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和BKP简介备份寄存器是42个16位的寄存器,可用来84个字节的用户应用程序数据。他们处在备份域复位后,对备份寄存器和RTC的被,并且备份域被保护以防止可能存在的意外的写操BKP特性BKP功能然而为了避免丢失侵入,侵入检测信号是边沿检测的信号与侵入检测允许位的逻辑与,从而在侵入检测引脚被允许前发生的侵入也可以被检测到。当TPAL=0时:如果在启动侵入检测TAMPER引脚前(通过设置TPE位)该引脚已经为高电当TPAL=1时:如果在启动侵入检测引脚TAMPER前(通过设置TPE位)该引脚已经为低电在一个侵入被检测到并被清除后,侵入检测引脚TMR应该被。然后,在再次写入备份数据寄存器前重新用TE位启动侵入检测功能。这样,可以软件在侵入检测引脚上仍然有侵入时对份数据存器进写操作这当于对侵引脚TMR行平测。注:当VDD电源断开时,侵入检测功能仍然有效。为了避免不必要的复位数据备份寄存器,TAMPER引RTC校准BKP寄存器描述备份数据寄存器x(BKP_DRx)x1复位值:0x0000 位它们可以由备份域复位来复位或(如果侵入检测引脚TAMPER功能被开启时)由侵入引脚复RTC时钟校准寄存器复位值:0x0000保 位位当设置了O位,O位可用于选择在MR引脚上输出的是秒脉冲还是闹钟脉冲位位位校准值表示在每个时钟脉冲内将有多少个时钟脉冲被跳过。这可以用来对进行准,以 (2m比减时。备份控制寄存器复位值:0x0000保 位位位: 同时设置TL和T位总是安全的。然而,同时清除两者会产生一个侵入。因此,推只T时变L状。备份控制/状态寄存器复位值:0x0000保保 位位当检测到有侵入且TPIE位为1时,此位由硬件置1。通过向CTI位写1来清除此标志位(同时位位位位位复位和时钟控制小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx,STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx,STM32F102xx和复软件复位通过将Corex3中断应用和复位控制寄存器中的RTRQ位置’1’,可实现软件复r3低功耗管理复位图 复位电备份域复位在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将备份区域复位时图 时钟1当HSI被用于作为PLL时钟的输入时,系统时钟的最大频率不得超过64MHz用户可通过多个预分频器配置HB、高速(P2)和低速P(1)域的频率。HB和2域的最大频率是7HZ。1域的最大允许频率是MHZ。DO接口的时钟频率固定为HL。RC通过HB时钟8分频后供给Corex系统定时器的(ysTck)外部时钟。通过对ysTick控制与状态寄存器的设置,可选择上述时钟或CrexB时钟作为ysTik时钟。DC时钟由高速22468HSE时钟图 HSE/LSE时钟外部时钟源(HSE旁路在这个模式里,必须提供外部时钟。它的频率最高可达2Hz。用户可通过设置在时钟控制寄存器中的HYP和HN位来选择这一模式。部时钟信号0%占空比的、正弦波或三角波必须连到C_N_8。外部晶体/陶瓷谐振器(HSE晶体~Mz外部振荡器可为系统提供更为精确的主时钟。相关的硬件配置可参考图8,进一步信息可参考的气特性分。在时钟控制寄存器RC_R中的HRDY位用来指示高速外部振荡器是否稳定。在启动时,直到这一位被硬件置’1’,时钟才被释放出来。如果在时钟中断寄存器RCCIR中允许产生中断,HSI时钟HSIRC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振校制造工艺决定了不同的RC振荡器频率会不同,这就是为什么每个的HSI时钟频率在出时钟控制寄存器中的HSIRDY位用来指示HSIRC振荡器是否稳定。在时钟启动过程中,直到这一位被硬件置’1’,HSIRC输出时被释放。HSIRC可由时钟控制寄存器中的HSION位来启动LSE时钟在备份域控制寄存器(C_DR)里的LRDY指示LE晶体振荡是否稳定。在启动阶段,直到这个位被硬件置’1’后,LE时钟信号才被释放出来。如果在时钟中断寄存器里被允许,可产生中断申请。外部时钟源(LSE旁路2kHz(C_DR)里的LP和LN位来选择这个模式。具有50%占空比的外部时钟信号(方)C_N_UT8。LSI时钟LSIRC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和在控制/状态寄存器(RCCR)里的LD位指示低速内部振荡器是否稳定。在启动阶段,直到这个位被硬件设置为1’后,此时被释放。如果在时钟中断寄存器R_CR)里被允许,L注意:只有大容量产品可以进行LSI校LSI校准校准可以通过使用T5的输入时钟TIL)测量LI时钟频率实现。测量以HE的精度为保证,软件可以通过调整RTC的0位预分频器来获得精确的RTC时钟基数,以及通过计算得到精(D系统时钟(SYSCLK)选择只有当目标时准备就绪了(经过启动稳定阶段的延迟或LL稳定),从一个时到另一个时的切换才会发生。在被选择时没有就绪时,系统时钟的切换不会发生。直至目标时钟源就绪,才发生切换。时钟安全系统注意:一旦CSS被激活,并且HSE时钟出现故障,CSS中断就产生,并且NMI也自动产生。NMI将被不断执行,直到CSS中断挂起位被清除。因此,在NMI的处理程序中必须通过设置时钟中断寄存器RTC时钟通过设置备份域控制寄存器(RCC_BDCR里的RTCSEL[1:0RTCCLK时钟源可以由只要VBAT维持供电,尽管VDD供电被切断,RTC如果VDD供电被切断或内部电压调压器被关闭(1.8V域的供电被切断),则RTC状态不确定看门狗时钟如果独立看门狗已经由硬件选项或软件启动,LI振荡器将被强制在打开状态,并且不能被关闭。在LWD。RCC寄存器描述时钟控制寄存器偏移地址复位值0x000XX83,X代表未定义:无等待状态,字,半字和字节保保rrNrrrrrrrrr位位位当进入待机和停止模式时,该位由硬件。当L时钟被用作或被选择将要作为系统时钟时,该位不能被。位位位在调试模式下由软件置’1’或来旁路外部晶体振荡器。只有在外部4-25MHz振荡器关闭的情位由硬件置’1’来指示外部4-25MHz时钟已经稳定。在HSEON位后,该位需要6个外部4-位 位位这些位在I]的基础上,让用户可以输入一个调整数值,根据电压和温度的变化调整内部I默认数值为16,在TA25°C时这个默认的数值可以把HSI调整到8MHZ±1%;增大HSICAL的数值则增大HSIRC振荡器的频率,反之则减小RC振荡器的频率;每步HSICAL的变化调整约位位由硬件置’1’来指示内部8MHz时钟已经稳定。在HSION位后,该位需要6个内部8MHz时钟位当从待机和停止模式返回或用作系统时钟的外部-Mz时钟发生故障时,该位由硬件置来启动内部Mz的振荡器。当内部Mz时钟被直接或间接地用作或被选择将要作为系统时钟,位能被。时钟配置寄存器偏移地址复位值0x0000保]保rr位位注意:-该时钟输出在启动和切换MCO时时可能会被截断-(位由软件置或清来产生Mz的时钟。在寄存器中使能时钟之证果,被。位0000:PLL2倍频输 0001:PLL3倍频输 0010:PLL4倍频输 0011:PLL5倍频输 0100:PLL6倍频输 0101:PLL7倍频输 0110:PLL8倍频输 0111:PLL9倍频输 位1:HSE2分位位位位注意:软件必须保证APB1时钟频率不超过36MHz。0xx:位HPRE:AHB1000:SYSCLK2分 1100:SYSCLK64分1001:SYSCLK4分 1010:SYSCLK8分 1011:SYSCLK16分 位位时钟中断寄存器偏移地址复位值0x0000保保留wwwwww 位位位位位位HSIRDYC:清除HSI就绪中位位位位位位位位位由软件通过置’1’CSSC位来清除。位位由软件通过置’1’PLLRDYC位来清除。位由软件通过置’1’HSERDYC位来清除。位由软件通过置’1’HSIRDYC位来清除。位由软件通过置’1’LSERDYC位来清除。位由软件通过置’1’LSIRDYC位来清除。APB2偏移地址复位值0x0000保876543210保位位位位位位位位位位位位位位位位位APB1外设复位寄存器复位值:0x0000 保保保保876543210保保 位位位位位位位位位I2C2RST:I2C2复1:复位I2C2位I2C1RST:I2C1复1:复位I2C1位位位位位位SPI3RSTSPI3复位位位位位位位位位位AHB外设时钟使能寄存器复位值:0x0000保876543210保保保保保 位位由软件置’1’或清’0’0:位位由软件置’1’或清’0’。0:位位位位位位位由软件置’1’或清’0’。0:位由软件置’1’或清’0’。0: 外设时钟使能寄存器复位值:0x0000保876543210保位位位位位由软件置’1’或清’00:位位位位位位位位位位位位 外设时钟使能寄存器复位值:0x0000 保保保保876543210保保 位位位位位位由软件置’1’或清’00:位位由软件置’1’或清’00:位由软件置’1’或清’00:I2C2时钟关闭;位由软件置’1’或清’00:I2C1时钟关闭;位’位位位位位由软件置’1’或清’00:SPI3时钟关闭;位由软件置’1’或清’00:SPI2时钟关闭;位位位位位位位位位备份域控制寄存器注意:备份域控制寄存器中(RCC_BDCR)的LSEON、LSEBYP、RTCSL和RTCEN位处于备份域。由此,这些位在复位后被写保护,只有在电源控制寄存器(PWR_C)中的DBP位置1之后才能对这些位进行改动。进一步信息请参考51节。这些位只能由备份域复位或VT上电复位。任何内部或外部复位不会影响这些位。保87654321保保 位位位由软件置’1’或清’00:位位由软件设置来选择RTC时。一旦RTC时被选定,直到下次后备域被复位,它不能在被位位位由硬件置或清来指示是否外部kz振荡器就绪。在O被清零后,该位需要个外部位控制/状态寄存器复位值:0x0C000000,除复位标志外由系统复位清除,复位标志只能由电源复位清除。876543210 876543210保保保 位位位位位位位位位位位0001100011保保保0保0参照2008年12RM0008ReferenceManual英文第70000

保保保保保0保保000保保00000

保保0000000000000000000000保00保00保0保0000000000000

000000000000000000000

00000011100100

保保00000000000000000000保00保00保0保0000000000000

000000000000000000000000000000

000保000保0000000保保00000000保保00000000000000保0000000000000保00000000000000000000000000

保保

表偏表偏保保0PLLRDY0PLLON保保0000HSEBYPHSERDY0HSEON00000000110006543保 1HSIRDY1 去RCC去RCC寄存器地址通用和复用功能I/O(GPIO和小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和GPIO每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存根据中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置每个O端口位可以自由编程,然而0端口寄存器必须按32位字被(不允许半字或字节访问)。_R和x_RR寄存器允许对任何O寄存器的读/更改的独立;这样读改之生R不生。图9I/O端口位的基本结构图 )表 PxODR00见表0101010011001表 输出模式意通用I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,PB4JNTRST单独的位设置或位清除这是通过对“置位/复位寄存器”(GPIOx_BSRRGPIOx_BRR)中想要更改的位写’1’来外部中断/唤醒线所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。的关于外复用功能注意:也可以通过软件来模拟复用功能输入管脚,这种模拟可以通过对GPIO控制器编程来实现。此软件重新映射I/O复用功能为了使不同器件封装的外设/功能的数量达到最优,可以把一些复用功能重新映射到其他一些脚上。这可以通过软件配置相应的寄存器来完成(参考FO寄存器描述)。这时,复用功能就不再映射到它们的原始引脚上了。GPIO锁定机制图 )(P-MOS从不被激活)。图 输出配(1)VDD_FT对5伏兼容I/O脚是特殊的,它与VDD不复用功能配置 )模拟输入配置图 )GPIO寄存器描述端口配置低寄存器 复位值:0x4444位位=9:8,端口配置高寄存器 复位值:0x4444位位=9:8,端口输入数据寄存器 复位值:0x0000 位位=端口输出数据寄存器 位位==端口位设置/清除寄存器 w wwwwwwwwwwwww wwwwwwwwwwww位BRy清除端口x的位yy位BSy:设置端口x的位yy端口位清除寄存器 复位值:0x0000 位位BRy清除端口x的位yy端口配置锁定寄存器 当执行正确的写序列设置了位1LC)时,该寄存器用来锁定端口位的配置。位150]用于锁定端口的配置。在规定的写入操作期间,不能改变LC50。当对相应的端口位执行了LC每个锁定位锁定控制寄存器(CRLCRH)中相应的4个位。复位值:0x0000保876543210位位写1写0->写1读0读位LCKy端口x的锁位yy复用功能I/O和调试配置把OSC32_IN/OSC32_OUT作为 端口当LSE振荡器关闭时,LSE振荡器引脚OSC32_IN/OSC32_OUT可以分别用做GPIO注 1.当关闭1.8V电压区(进入待机模式)或后备区域使用VBAT供电(不再有VDD供电)时,不能使把OSC_IN/OSC_OUT引脚作为GPIO端口这个重映射只适用于6、4和4脚的封装10脚和14脚的封装上有单独的D和1的引) 外部中断/功能没有被重映射。在36、48和64脚的封装上,PD0和PD1不能用来产生外部中CAN复用功能重映射表 JTAG/SWD复用功能重映射GPIOGPIOSWJI/O完全SWJ(JTAG-DPSWJI/O完全SWJ(JTAG-DP完全SWJ(JTAG-DP1.I/O口只可在不使用异步时使用ADC复用功能重映射.表 .表 .表 .定时器复用功能重映射表 表 TIM4_REMAP=TIM4_REMAP= 表 (没有重映像(部分重映像(完全重映像表 (没有重映像(部分重映像(部分重映像(完全重映像TIM_CH1和TIM_ETR共个管脚,但不能同时使用(这也正是我们在此处使用表达式TIM2_CH1_ETR表 (没有重映像(部分重映像(完全重映像USART复用功能重映射(没有重映像(部分重映像USART3_REMAP[1:0]=(完全重映像(没有重映像(部分重映像USART3_REMAP[1:0]=(完全重映像表 USART2_REMAP=USART2_REMAP=表 USART1_REMAP=USART1_REMAP=I2C1I2C1_REMAP=I2C1_REMAP=I2C1_REMAP=I2C1_REMAP=SPI1SPI1_REMAP=SPI1_REMAP=SPI1_REMAP=SPI1_REMAP=AFIO寄存器描述注意:对寄存器AFIO_EVCR,AFIO_MAPR和AFIO_EXTICRX进行读写操作前,应当首先打开AFIO的时钟。参考章节6.3.7APB2外设时钟使能寄存器(RCC_APB2ENR)。控制寄存器复位值:0x0000保 位位位 位 复用重映射和调试I/O配置寄存器复位值:0x0000 保保 位位这些位可由软件读写,用于配置SWJ和复用功能的I/O口。SWJ(串行线JTAG)支持JTAG或SWDCortex的调试端口。系统复位后的默认状态是启用SWJ但没有功能,这种状态下++位位该位可由软件置’或置’。它控制与2规则转换外部触发相连的触发输入映像。当该位置’时,规则转换外部触发与1相连;当该位置’时,2规则转换外部触发与M位该位可由软件置’或置’。它控制与2注入转换外部触发相连的触发输入映像。当该位置’时,注入转换外部触发与5相连;当该位置’时,2注入转换外部触发与I位该位可由软件置’或置’。它控制与2规则转换外部触发相连的触发输入映像。当该位置’时,规则转换外部触发与1相连;当该位置’时,1规则转换外部触发与M位该位可由软件置’或置’。它控制与2注入转换外部触发相连的触发输入映像。当该位置’时,注入转换外部触发与5相连;当该位置’时,1注入转换外部触发与I位该位可由软件置’或置’。它控制M通道内部映像。当该位置’时,M与相位该位可由软件置或置。它控制0和1的GO功能映像。当不使用主振荡器时(系Mz)和_I和O、(和Q)。位位位位位10未用组合11完全映像位这些位可由软件置’或置’,控制3的、、K、X和复用功能在GIO端00没有重映像01部分映像10未用组合:位这些位可由软件置’或置’,控制2的、、K、X和复用功能在GIO端0没有重映像1重映像位0没有重映像:位0没有重映像:位该位可由软件置或置,控制的、、IOOIGO0没有重映像:外部中断配置寄存器保 保 位位EXTIx[3:0]:EXTIx配置(x0 外部中断配置寄存器保 保 位位EXTIx[3:0]:EXTIx配置(x4 外部中断配置寄存器保 保 位位EXTIx[3:0]:EXTIx配置(x8 外部中断配置寄存器保 保 位位EXTIx[3:0]:EXTIx配置(x12 中断和小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和嵌套向量中断控制器特系统嘀嗒(SysTick)校准值寄存器中断和异常向量表 01234560718293456789CANSCE中I2C1中I2C2中外部中断/控制器外部中断/控制器由19个产生/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发(上升沿或下降沿或者双边沿都触发)。每个输入线都可框图 唤醒管NCore-3NDUWFC在N)。如果要产生中断,必须事先配置好并使能中断线。根据需要的边沿检测设置2时在中断寄存器的相应位写’1’允许中断请求。当外部中断线上发生了需要的边沿时,生一个中断请求,对应的挂起位也随之被置1’。在挂起寄存器的对应位写1’,可以清除该中断请求。如果要为产生,必须事先配置好并使能线。根据需要的边沿检测通过设置2个触发寄存器,同时在寄存器的相应位写’1’允许请求。当线上发生了需要的边沿时,将产生一个请求脉冲,对应的挂起位不被置’1’。硬件中断选择硬件选软件中断/的选外部中断/线路映 中断寄存器复位值:0x0000 保 位位MRx:线x寄存器复位值:0x0000 位位MRx:线x上上升沿触发选择寄存器复位值:0x0000 位位TRx:线x上的上升沿触发配置注意 外部唤醒线是边沿触发的,这些线上不能出现毛刺信号在写T_TR寄存器时,在外部中断线上的上升沿信号不能被识别,挂起位不会被置位。在同一中断线上,可以同时设置上升沿和下降沿触发。即任一边沿都可触发中断。下降沿触发选择寄存器复位值:0x0000 位位TRx:线x上的下降沿触发配置注意 外部唤醒线是边沿触发的,这些线上不能出现毛刺信号在写TT寄存器时,在外部中断线上的下降沿信号不能被识别,挂起位不会被置位。在同一中断线上,可以同时设置上升沿和下降沿触发。即任一边沿都可触发中断。软件中断寄存器复位值:0x0000 位位当该位为时,写’将设置I中相应的挂起位。如果在IM和IM中允许挂起寄存器复位值:0xXXXX rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1位位PRx挂起当在外部中断线上发生了选择的边沿,该位被置’1’。在该位中写入’1’可以清除它,也可以DMA控制器小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和DMA简介DMA主要等优先权时由硬件决定(请求0优先于请求1,依此类推)。每个通道都有3个标志(DMA半传输,DMA传输完成和DMA传输出错),这3个标志图17DMADMA控制器和Cortex™-M3核共享系统数据总线执行直接器数据传输。当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求可能会停止CPU系统总线达若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(器或外设)带宽。DMA处理在发生一个后,外设发送一个请求信号到DMA控制器。DMA控制器根据通道的优先权处理请求。当DMA控制器开始外设的时候,DMA控制器立即发送给外设一个应答信号。当从 仲裁器注意:在大容量产品中,DMA1控制器拥有高于DMA2控制器的优先DMA可编程的数据量指针增量通过设置DMCRx寄存器中NC和MNC标志位,外设和器的指针在每次传输后可以有选择地完成自动增量。当设置为增量模式时,下一个要传输的地址将是前一个地址加上增量值,增量值取决与所选的数据宽度为1、2或4。第一个传输的地址存放在M_Cx通道配置过程 当传输一半的数据后,半传输标志H)被置1,当设置了允许半传输中断位(T)时,将产生一个中断请求。在数据传输结束后,传输完成标志C)被置1,当设置了允许传输完成中断位T)循环模式循环模式用于处理循环缓冲区和连续的数据传输(如DC的扫描模式)。在M_Cx寄存器中的CC位用于开启这能。当启动了循环模式,数据传输的数目变为0时,将会自动地被恢M器到器模位启动DMA通道时,传输将马上开始。当DTRx寄存器变为0时,DMA传输结束 宽宽数源:地址/目标:地址/宽宽数源:地址/目标:地址/8840x0/0x1/0x2/0x3/::::0x0/0x1/0x2/0x3/840x0/0x1/0x2/0x3/::::0x0/0x2/0x4/0x6/840x0/0x1/0x2/0x3/ :0x0/0x4/0x8/0xC/840x0/0x2/0x4/0x6/::::0x0/0x1/0x2/0x3/40x0/0x2/0x4/0x6/::::0x0/0x2/0x4/0x6/40x0/0x2/0x4/0x6/::::0x0/0x4/0x8/0xC/840x0/0x4/0x8/0xC/::::0x0/0x1/0x2/0x3/40x0/0x4/0x8/0xC/::::0x0/0x2/0x4/0x6/40x0/0x4/0x8/0xC/::::0x0/0x4/0x8/0xC/操作一个不支持字节或半字写的AHB设备当MA模块开始一个HB的字节或半字写操作时,数据将在DT10]总线中未使用的部分重复。因此,如果DM以字节或半字写入不支持字节或半字写操作的H设备时(即HZ不)DM2HDT例如,如果要写入APB后备寄存器(与32位地址对齐的16位寄存器),需要配置器数据源宽读写一个保留的地址区域,将会产生DMA传输错误。当在DMA读写操作时发生DMA传输错误时,硬件会自动地清除发生错误的通道所对应的通道配置寄存器(DM_Cx)的N位,该通道操作被停止。此时,在DM_FT寄存器中对应该通道的传输错误中断标志位(T)将被置位,如果在MCRx中表 注意:在大容量产品中,DMA2通道4和DMA2通道5的中断被映射在同一个中断向量上,其他的DMA通DMADMA1控制器 外通道通道通道通道通道通道通道DMA2控制器从外设(TIMx5、6、7、8]、DC3、23、URT4、DC通道1、2和D)产生的5个请求,经逻辑或输入到MA控制器,这意味着同时只能有一个请求有效。参见下图的M2请求映像。注意:DMA2控制器及相关请求仅存在于大容量图 表 外通道通道通道通道通道DMA寄存注意:在以下列举的所有寄存器中,所有与通道6和通道7相关的位,对DM2都不适用,因为D2只5DMA中断状态寄存器复位值:0x0000 位位19,15TEIFx:通道x的传输错误标志(x1位18,14HTIFx:通道x的半传输标志(x1位17,13TCIFx:通道x的传输完成标志(x1位16,12GIFx:通道x的全局中断标志(x1DMA中断标志清除寄存器复位值:0x0000 位位CTEIFx:清除通道x的传输错误标志(x119,15位CHTIFx:清除通道x的半传输标志(x118,14位CTCIFx:清除通道x的传输完成标志(x117,13位CGIFx:清除通道x的全局中断标志(x1DMA通道x配置寄存器(DMA_CCRx)(x=偏移地址:0x0820dx通道编号复位值:0x00000000 位位位位位位位位位位位位位DMA通道x传输数量寄存器 偏移地址:0x0C20dx通道编号复位值:0x00000000位位数据传输数量为0至。这个寄存器只能在通道不工作(Mx的)时写入。通道开启后该寄存器变为只读,指示剩余的待传输的字节数目。寄存器内容在每次MDMA通道x外设地址寄存器(DMA_CPARx)(x 偏移地址:0x1020dx通道编号复位值:0x00000000 位DMA通道x器地址寄存器 偏移地址:0x1420dx通道编号复位值:0x00000000位

复位

保0

00000000000000000000000000

复位 复位

000000

0000

000000

000000000

0000000000000 保

PLMSIZE保 [1:0]复位

0000

00

00

000

复位

0000

00

00

0000

复位

0000000000000

0000000000000

复位

0000000000000

000000

0000000000000 保模拟/数字转换小容量产品是指闪存器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和中容量产品是指闪存器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和ADC介绍12位ADC是一种逐次近型模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号方式在16位数据寄存器中。ADC主要ADC输入范围:VREFVIN注意:如果有VREF-管脚(取决于封装),必须和VSSA相连ADC功能 表 ADC使用的高端/正极参考电压,2.4VVREF等效于VDD的模拟电源且:2.4VVDDAADC使用的/负极参考电压,VREF-=ADCADC上电延迟一段时间后(tSTAB),再次设置ADON位时开始进行转换ADC有6个多路通道。可以把转换分成两组:规则的和注入的。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道225。温度传感器/VREFINT内部通道注意:传感器和VREFINT只能出现在主ADC1中单次转换模式单次转换模式下,DC只执行一次转换。该模式既可通过设置D_2寄存器的DN位(只()CNT0。连续转换模式时序图图 时序模拟看门狗值位于在ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的图 表 无00001010011101110111)扫描模式可通过设置DC_R1寄存器的CN位来选择。一旦这个位被设置,DC扫描所有被D_RX寄存器(对规则通道)或_JR(对注入通道)选中的所有通道。在每个组的每个注入通道管理触发注入注:当使用触发的注入转换时,必须保证触发的间隔长于注入序列。例如:序列长度为28个ADC时钟周期(即2个具有1.5个时钟间隔采样时间的转换),触发之间最小的间隔必须是29个自动注入如果设置了JAUTO对于C时钟预分频系数为4至8时,当从规则转换切换到注入序列或从注入转换切换到规则序列时,会自动插入1个DC时钟间隔;当DC时钟预分频系数为2时,则有2个DC时钟间隔的延迟。注意:不可能同时使用自动注入和间断模图23)规则此模式通过设置ADC_CR1寄存器上的DISCEN位激活。它可以用来执行一个短序列的n(n<=8),此转换是ADC_SQRx寄存器所选择的转换序列的一部分。N由ADC_CR1寄存器的一个外部触发信号可以启动ADC_SQRxn次转换,直到此序列所有的转n=30123679注意:当以间断模式转换一个规则组时,转换序列结束后不自动从头开始。当所有子组被转换完成,下一次触发启动第一个子组的转换。在上面的例子中,第四次触发重新转换第一子组的通道0、1。注入此模式通过设置ADC_CR1寄存器的JDISCEN位激活。在一个外部触发后,给模式按序转注意:1 当完成所有注入通道转换,下个触发启动第1个注入通道的转换。在上述例子中,第四个触重换个通。不能同时使用自动注入和间断模式必须避免同时为规则和注入组设置间断模式。间断模式只能作用于一组转换校DC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在校准期间,每个电容器上都会计算出一个误差修正码(数字值)注意:1建议在每次上电后执2启动校准前,ADC必须处于关电状态(ADON=’0’)超过至少两个ADC时钟周期图24 TTTT0000图26T0000000可编程的通道采样时间DC使用若干个_LK周期对输入电压采样,采样周期数目可以通过DC_MR1和D_MR2寄存器中的M20]位而更改。每个通道可以以不同的时间采样。总转换时间如下计算:TCONV采样时间12.5个周期TCONV1.512.514外部触发转换转换可以由外部触发(例如定时器捕获,EXTI线)。如果设置了EXTTRIG控制位,则外部事件就能够触发转换。EXTSEL[2:0]和JEXTSEL2:0]控制位允许应用程序选择8个可能的中的注意:当外部触发信号被选为ADC规则或注入转换时,只有它的上升沿可以启动转换表45ADC1和ADC2类对于规则通道,选中EXTI线路11和TIM8_TRGO作为外部触发,可以通过设置ADC1和ADC2表46ADC1和ADC2对于规则通道,选中EXTI线路15和TIM8_CC4作为外部触发,可以通过设置ADC1和ADC2表 表 DMA请求 注 只有ADC1和ADC3拥有DMA功能。由ADC2转化的数据可以通过双ADC模式,利用ADC1DMA性能来实现双ADC模式注意:在双ADC模式里,当转换配置外部触发时,用户必须将其设置成仅触发主ADC,从D设置成软件触发,这样可以防止意外的触发从转换。但是,主和从DC的外部触发必须同注意:在双ADC模式里,为了从主数据寄存器上从转换数据,DA位必须被使能,即使并不用它图 *某些双ADC模式中,在完整的32位ADC1数据寄存器(ADC1_DR)中包含了ADC1和ADC2的规则转换同步注入模式注意:不要在2个DC上转换相同的通道(如果转换两个DC的相同通道,不可能提供的采样时。: 在同步模式中,必须转换具有相同长度的序列,或保证触发的间隔比2个序列中较长的序列长,否则当较长序列的转换还未完成时,具有较短序列的AD转换会被重启。图 同步规则模式注意:不要在2个DC上转换相同的通道(如果转换两个DC的相同通道,不可能提供的采样时。: 在同步规则模式中,必须转换具有相同长度的序列,或

温馨提示

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

评论

0/150

提交评论