2024年1月17日发(作者:)
学习STM32,官方提供一个库,但如果刚入手的话,肯定连功能都不太清楚,所以用不太习惯觉得还是操作寄存器来的直接,所以就整理了STM32的大部分寄存器共大家参考。版权归ST公司基本上都是103的,其中107的RCC,USB,和以太网等一些不太重要的没有,但大部分都有。我只是把数据手册中的寄存器整理了一下方便大家看。如果有什么不对的,请通知我,也好修改联系方式:qq 526083029 小树PWR电源相关寄存器PWR_CR(电源控制寄存器)3191817保留保留DBPPLS[2:0]PVDECSBFCWUFPDDS8位:DBP取消后备区域写保护。复位值为0。定义:0为禁止写入,1为允许写入。注:如果rtc时钟是HSE/128,必须保持为17-5位:PVD电源电压检测器的电压阀值。定义:000(2.2v),001(2.3v),010(2.4v),011(2.5v),100(2.6v),101(2.7v),110(2.8v),111(2.94位:PVDE电源电压检测器(PVD)使能。定义:0(禁止PVD),1(开启PVD)3位:CSBF清除待机位(始终输出为0)定义:0(无功效),1(清除SBF待机位(写)2位:CWUF清除唤醒位(始终输出为0)定义:0(无功效),1(2个系统时钟周期后清除WUF唤醒位(写)1位:PDDS掉电深睡眠(与LPDS位协同操作)定义:0(当CPU进入深睡眠时进入停机模式,调压器状态由LPDS位控制),1(CPU进入深睡眠时进入待机模式)0位:LPDS深睡眠下的低功耗(PDDS=0时,与PDDS位协同操作)定义:0(在待机模式下电压调压器开启),1(在待机模式下电压调压器处于低功耗模式)PWR_CSR(电源控制/状态寄存器)3191817保留保留EWUP保留PVDOSBF8位:EWUP使能WKUP引脚。定义:0(WKUP为通用IO),1(用于待机唤醒模式,WKUP引脚被强置为输入下拉的配置(WKUP引脚上的上升沿将系统从待机模式唤醒) 注:复位时清除这一位2位:PVDO-PVD输出(当PVD被PVDE位使能后该位才有效)定义:0(VDD/VDDA高于PLS[2-0]选定的PVD阀值),1(VDD/VDDA低于PLS[2-0]选定的PVD阀值) 注:在待机模式下PVD被停止,因此,待机模式后或复位后,直到设置PVDE位之前,该位为01位:SBF待机标志位(该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)的CSBUF位清除)定义:0(不在待机)1(已待机)0位:WUF唤醒标志(该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)的CWUF位清除) 定义:0(没有唤醒事件),1(在WKUP引脚上发生唤醒事件或出现RTC脑中事件) 注:当WKUP引脚已经是高电平时,在(通过设置EWUP位)使能WKUP引脚时,会检测到一个额外事件BKP——DRx(10)(备份数据寄存器)-0位:备份数据由用户来写数据。注:BKP——DRx寄存器不会被系统复位,电源复位,待机唤醒所复位 它可以由备份域复位来复位或(如果入侵检测引脚TAMPER功能被开启时)由浸入引脚事件复位BKP_RTCCR(RTC时钟校准寄存器)
保留ASOSASOECCOCAL[6:0]9位:ASOS闹钟或秒输出(当设置ASOE位,ASOS位可用于选择在TAMPER引脚上输出的是RTC秒脉冲还是闹钟脉冲信号)定义:0(输出RTC闹钟脉冲),1(输出秒脉冲8位:ASOE允许输出闹钟或秒脉冲(根据ASOS位的置位,该位允许RTC闹钟或秒脉冲输出到TAMPER引脚。脉冲宽度为1个RTC时钟周期。置位时不能开启TAMPER功能)7位:CCO校准时钟输出。定义:0(无影响),1(此位置1可在侵入检引脚输出经64分频后的RTC时钟。当CCO位置1时,必须关闭侵入检测)注:vdd断电,该位清除
6-0位:CAL校准值。表示在每2的20次方个时钟脉冲内将有多少个脉冲被跳过。这可用来对RTC进行校准,以1000000/(2的20次方比例减慢时钟)可用被减慢0-121BKP_CR(备份控制寄存器)保留TPAL1位:TPAL侵入检测TAMPER引脚有效电平。定义:0(检测TAMPER脚高电平清除备份数据)1(检测TAMPER脚低电平清除备份数据)2位:TPE启动入侵检测TAMPER引脚。定义:0(TAMPER脚为普通IO),1(开启检测)注:TPAL、TPE同时置为可用,但同时清零则会出问题。所以推荐在TPE为0时才改变TPAL位状态。BKP_CSR(备份控制/状态寄存器)保留TIFTEF保留TPIECTI9位:TIF侵入中断标志(当检测有侵入事件且TPIE为1时,此为硬件置1,通过向CTI位写1来清除标志位(同时也清除中断)。如果TPIE被清除,此位也会被清除。 定义:0(无侵入),1(检测到侵入)注:仅当系统复位或由待机模式唤醒后才复位该位8位:TEF侵入事件标志(当检测到侵入事件时此位由硬件置1。通过向CTE位写1可清除此标志位)定义:0(无侵入事件),1(有侵入事件) 注:侵入事件会复位所有的BKP_DRx寄存器。只要TEF为1,所有的BKP_DRx寄存器就一直保持复位状态。当此位被置1时,若对BKP_DRx写操作,则不会保存。2位:TPIE:允许侵入TAMPER引脚中断。定义0(禁止侵入检测中断),1(允许(BKP_CR寄存器TPE位也必须置1) 注:1、侵入检测无法将系统内核从低功耗模式唤醒,2、仅当系统复位或由待机模式唤醒后才复位该位1位:CTI清除侵入检测中断(只能写入,读出值为0)定义:0(无效)1(清除侵入检测中断和TIF侵入检测中断标志)
0位:CTE清除侵入检测事件(只能写入,读出值为0)定义:0(无效)1(清除TEF侵入检测事件标志(并复位侵入检测器)RCC时钟相关寄存器31153HSICAL[7:0]保留HSIRDY25位:PLLRDY-PLL时钟就绪标志(PLL锁定后由硬件置1)定义:0(未锁定),1(锁定)24位:PLLON-PLL使能(手动)定义:0(PLL关闭),1(PLL使能)。进入待机或停机模式时,该位由硬件清零当PLL用作系统始终时,该位不能被清零。19位:CSSON时钟安全系统使能(由软件置1或清零)定义:0(时钟监测器关闭),1(如果外部4-16M振荡器就绪,时钟监测器开启)18位:HSEBYP外部高速时钟旁路。定义:0(晶振4-16M),1(有源晶振25M)。调试模式下由软件控制。只有在4-16M振荡器关闭情况下,才能写入该位。17位:HSERDY外部高速时钟就绪标志(自动)在HSEON位清零后,需6个外部4-25M振荡器周期清零。定义:0(4),16位:HSEON外部高速时钟使能(软件控制)定义:0(HSE关闭),1(HSE开启)。待机或停机模式硬件清零,当用作系统系统时钟时,该位不能清零。15-8位:HSICAL[7:0]-内部高速时钟校准。系统启动时,这些位被自动初始化。7-3位:HSITRIM[4:0]-内部高速时钟调整(软件控制,与HSICAL叠加,相当于手动微调)1位:HSIRDY内部高速时钟就绪标志硬件置1,在HSION清零后,该位需要6个内部8M振荡周期清零。定义:0(没有就绪),1(有就绪)0位:HSION内部高速时钟使能(软件控制)当从待机或停机返回用或外部振荡故障时由硬件置1。若使用内部时钟做系统时钟则不能清零。定义:0(关),1(开)RCC_CFGR(时钟配置寄存器)3191817保留MCO[3:0]保留OTGFSPREPLLMUL[3:0]PLLXTPREADCPRE[1:0]PPRE2[2:0]PPRE1[2:0]HPRE[3:0]SWS[1:0]SW[1:27-24位:MCO微控制器时钟输出(手动)注:该时钟输出在启动和切换MCO时钟源时可能会被截断。在系统时钟作为MCO引脚时,需保证输出不高于50M 定义:00xx(无输出),0100(系统时钟sysclk输出),0101(内部8M输出),0110(外部25M输出),0111(PLL时钟2分频输出),1000(PLL2输出) 1001(PLL3时钟2分频输出),1010(XT1外部25M输出(为以太网),1011(PLL3时钟输出)22位:OTGFSPRE全速USBOTG预分频(手动)在RCC_APB1ENR寄存器中使能全速OTG时钟之前,必须保证该位已经有效,如OTG时钟被使能则不能清0 定义:0(VCO时钟除3,但必须配置PLL输出为72M),1(VCO时钟除2,但必须配置PLL输出为48M)21-18位:PLLMUL-PLL倍频系数(手动)注:只有在PLL关闭的情况下才能被写入,且PLL的输出频率不能超过72M 定义:000x,10xx,1100(保留),0010(PLL4倍),0011(PLL5倍),0100(PLL6倍),0101(PLL7倍),0110(PLL8倍),0111(PLL9倍),1101(PLL6.5倍)17位:PLLXTPRE-PREDIV1分频因子低位(软件控制)与RCC_CFGR2的0位为同一位。如果RCC_CFGR2[3:1]为000,则该位控制PREDIV1对输入时钟进行2分频(PLLXPR 或不对输入时钟分频(PLLXPRE=0),只能在关闭PLL时才写入此位16位:PLL输入时钟源(软件控制,且只能在关闭PLL时才写入此位)定义:0(HIS时钟2分频做PLL输入),1(PREDIV1输出做PLL输入) 注:当改变主PLL的输入时钟源时,必须在选定了新的时钟源后才能关闭原来的时钟源15/14位:ADCPRE-ADC预分频(手动)定义:00(PCLK2-2分频),01(PCLK2-4分频),10(PCLK2-6分频),11(PCLK2-8分频)13-11位:PPRE2[2:0]-APB2预分频(手动)定义:0xx(HCLK不分频),100(HCLK2分频),101(HCLK4分频),110(HCLK8分频),111(HCLK16分频)10-8位:PPRE1[2:0]-APB1预分频(手动)定义:0xx(HCLK不分频),100(HCLK2分频),101(HCLK4分频),110(HCLK8分频),111(HCLK16分频),注小于7-4位:HPRE[3:0]-AHB预分频(手动)定义:0xxx(SYSCLK不分频),1000(2分频),1001(4分频),1010(8分频),1011(16分频) 1100(64分频),1101(128分频),1110(256分频),1111(512分频).注:AHB时钟预分频大于1时,必须开预取缓冲器。当使用以太网模块时,频率至少25M3-2位:SWS[1:0]系统时钟切换状态(自动)定义:00(HIS作为系统时钟),01(HSE做系统时钟),10(PLL做系统时钟),11(不可用)29保留132827RCC_CR(时钟控制寄存器)26252423PLLRDYPLLON109872221保留65HSITRIM[4:0]20CSSON19HSEBYP18HSERDY17
1-0位:SW系统时钟切换(手动,自动,自动时时钟安全须开启)定义:00(HIS做系统时钟),01(HSE做系统时钟),10(PLL做系统时钟),11(不可用)RCC_CIR(时钟中断寄存器)3191817保留CSSC保留PLLRDYCHSERDYCHISRDYCLSERDYC保留PLLRDYIEHSERDYIEHSIRDYIELSERDYIELSIRDYIECSSF保留PLLRDYFHSERDYFHSIRDYFLSERDYF23位:CSSC清除时钟安全系统中断(软件置1)定义:0(无作用),1、清除CSSF安全系统中断标志20位:PLLRDYC清除PLL就绪中断(手动)定义:0(无作用),1(清除PLL就绪中断标志位PLLRDYF)19位:HSERDYC清除HSE就绪中断(手动)定义:0(无作用),1(清除HSE就绪中断标志位HSERDYF)18位:HSIRDYC清除HSE就绪中断(手动)定义:0(无作用),1(清除HSI就绪中断标志位HSIRDYF)17位:LSERDYC清除HSE就绪中断(手动)定义:0(无作用),1(清除LSE就绪中断标志位LSERDYF)16位:LSIRDYC清除HSE就绪中断(手动)定义:0(无作用),1(清除LSI就绪中断标志位LSIRDYF)12位:PLLRDYIE-PLL就绪中断使能(手动)定义:0(PLL就绪中断关闭),1(PLL就绪中断使能)11位:HSERDYIE-HSE就绪中断使能(手动)定义:0(HSE就绪中断关闭),1(HSE就绪中断使能)10位:HSIRDYIE-HSI就绪中断使能(手动)定义:0(HSI就绪中断关闭),1(HSI就绪中断使能)9位:LSERDYIE-LSE就绪中断使能(手动)定义:0(LSE就绪中断关闭),1(LSE就绪中断使能)8位:LSIRDYIE-LSI就绪中断使能(手动)定义:0(LSI就绪中断关闭),1(LSI就绪中断使能)7位:CSSF时钟安全系统中断标志(自动置1,手动CSSC清除)定义:0(无HSE时钟失效产生的中断),1(HSE时钟失效产生中断)4位:PLLRDYF-PLL3就绪中断标志(自动置1,手动PLLRDYC清除)定义:0(无PLL上锁产生的时钟就绪中断),1(PLL上锁导致中断)3位:HSERDYF-HSE就绪中断标志(自动置1,手动HSERDYC清除)0(无中断),1(有中断)2位:HSIRDYF-HSI就绪中断标志(自动置1,手动HSERDYC清除)0(无中断),1(有中断)1位:LSERDYF-LSE就绪中断标志(自动置1,手动HSERDYC清除)0(无中断),1(有中断)0位:LSIRDYF-LSI就绪中断标志(自动置1,手动HSERDYC清除)0(无中断),1(有中断)RCC_APB2RSTR(APB2外设复位寄存器)3191817保留ADC3RSTUSART1RSTTIM8RSTSPI1RSTTIM1RSTADC2RSTADC1RSTIOPGRSTIOPFRSTIOPERSTIOPDRSTIOPCRSTIOPBRSTIOPARST保留15位:ADC3RST-ADC3接口复位(手动)定义:0(无作用),1(复位ADC3接口)14位:USART1RST-USART1接口复位(手动)定义:0(无作用),1(复位USART1接口)13位:TIM8RST-TIM8接口复位(手动)定义:0(无作用),1(复位TIM8接口)12位:SPI1RSTRST-SPI1接口复位(手动)定义:0(无作用),1(复位SPI1接口)11位:TIM1RST-TIM1接口复位(手动)定义:0(无作用),1(复位TIM1接口)10位:ADC2RST-ADC2接口复位(手动)定义:0(无作用),1(复位ADC2接口)9位:ADC1RST-ADC1接口复位(手动)定义:0(无作用),1(复位ADC1接口)8位:IOPGRST-IOPG接口复位(手动)定义:0(无作用),1(复位IOPG接口)7位:IOPFRST-IOPF接口复位(手动)定义:0(无作用),1(复位IOPF接口)6位:IOPERST-IOPE接口复位(手动)定义:0(无作用),1(复位IOPE接口)5位:IOPDRST-IOPD接口复位(手动)定义:0(无作用),1(复位IOPD接口)4位:IOPCRST-IOPC接口复位(手动)定义:0(无作用),1(复位IOPC接口)3位:IOPBRST-IOPB接口复位(手动)定义:0(无作用),1(复位IOPB接口)2位:IOPARST-IOPA接口复位(手动)定义:0(无作用),1(复位IOPA接口)
0位:AFIORST辅助功能IO复位(手动)定义:0(无作用),1(复位辅助功能)RCC_APB1RSTR(APB1外设复位寄存器)3134232221保留DACRSTPWRRSTBKPRST保留CANRST保留USBRSTI2C2RSTI2C1RST098765SPI3RSTSPI2RST保留WWDGRST保留TIM7RST29位:DACRST-DAC复位接口(手动)定义:0(无作用),1(复位DAC接口)28位:PWRRST电源复位接口(手动)定义:0(无作用),1(复位PWR接口)27位:BKPRST-备份复位接口(手动)定义:0(无作用),1(复位BKP接口)25位:CANRST-CAN复位接口(手动)定义:0(无作用),1(复位CAN接口)23位:USBRST-USB复位接口(手动)定义:0(无作用),1(复位USB接口)22位:I2C2RST-I2C2复位接口(手动)定义:0(无作用),1(复位I2C2接口)21位:I2C1RST-I2C1复位接口(手动)定义:0(无作用),1(复位I2C1接口)20位:UART5RST-UART5复位接口(手动)定义:0(无作用),1(复位UART5接口)19位:UART4RST-UART4复位接口(手动)定义:0(无作用),1(复位UART4接口)18位:UART3RST-UART3复位接口(手动)定义:0(无作用),1(复位UART3接口)17位:UART2RST-UART2复位接口(手动)定义:0(无作用),1(复位UART2接口)15位:SPI3RST-SPI3复位接口(手动)定义:0(无作用),1(复位SPI3接口)14位:SPI2RST-SPI2复位接口(手动)定义:0(无作用),1(复位SPI2接口)11位:WWDGRST-WWDG复位接口(手动)定义:0(无作用),1(复位WWDG接口)5位:TIM7RST-TIM7复位接口(手动)定义:0(无作用),1(复位TIM7接口)4位:TIM6RST-TIM6复位接口(手动)定义:0(无作用),1(复位TIM6接口)3位:TIM5RST-TIM5复位接口(手动)定义:0(无作用),1(复位TIM5接口)2位:TIM4RST-TIM4复位接口(手动)定义:0(无作用),1(复位TIM4接口)1位:TIM3RST-TIM3复位接口(手动)定义:0(无作用),1(复位TIM3接口)0位:TIM2RST-TIM2复位接口(手动)定义:0(无作用),1(复位TIM2接口)RCC_AHBENR(外设时钟使能寄存器)3134232221保留098765保留SDIOEN保留FSMCEN保留CRCEN保留10位:SDIOEN-SDIO时钟使能(手动)定义:0(时钟关闭),1(时钟开启)8位:FSMCEN-FSMC时钟使能(手动)定义:0(时钟关闭),2(时钟开启)6位:CRCEN-CRC时钟使能(手动)定义:0(时钟关闭),3(时钟开启)4位:FLITFEN-FLITF时钟使能(手动)定义:0(时钟关闭),4(时钟开启)2位:SRAMEN-SRAM时钟使能(手动)定义:0(时钟关闭),5(时钟开启)1位:DMA2EN-DMA2时钟使能(手动)定义:0(时钟关闭),6(时钟开启)0位:DMA1EN-DMA1时钟使能(手动)定义:0(时钟关闭),7(时钟开启)RCC_APB2ENR(APB2外设时钟使能寄存器)3134232221保留17UART5RSTUART4RSTUART3RSTUART2RST4321TIM6RSTTIM5RSTTIM4RSTTIM3RST204FLITFEN保留193SRAMEN182DMA2EN1712
ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENIOPGENIOPFENIOPEENIOPDENIOPCENIOPBENIOPAEN保留15位:ADC3EN:ADC3接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)14位:USART1EN:USART1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)13位:TIM8EN:TIM8接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)12位:SPI1EN:SPI1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)11位:TIM1EN:TIM1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)10位:ADC2EN:ADC2接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)9位:ADC1EN:ADC1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)8位:IOPGEN:IOPG接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)7位:IOPFEN:IOPF接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)6位:IOPEEN:IOPE接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)5位:IOPDEN:IOPD接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)4位:IOPCEN:IOPC接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)3位:IOPBEN:IOPB接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)2位:IOPAEN:IOPA接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)0位:AFIOEN:AFIO接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)RCC_APB1ENR(APB1外设时钟使能寄存器)3191817保留DACENPWRENBKPEN保留CANEN保留USBENI2C2ENI2C1ENUART5ENUART4ENUART3ENUART2ENSPI3ENSPI2EN保留WWDGEN保留TIM7ENTIM6ENTIM5ENTIM4ENTIM3EN29位:DACRST-DAC时钟使能(手动)定义:0(时钟关闭),1(时钟开启)28位:PWRRST电源时钟使能(手动)定义:0(时钟关闭),1(时钟开启)27位:BKPRST-备份时钟使能(手动)定义:0(时钟关闭),1(时钟开启)25位:CANRST-CAN时钟使能(手动)定义:0(时钟关闭),1(时钟开启)23位:USBRST-USB时钟使能(手动)定义:0(时钟关闭),1(时钟开启)22位:I2C2RST-I2C2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)21位:I2C1RST-I2C1时钟使能(手动)定义:0(时钟关闭),1(时钟开启)20位:UART5RST-UART5时钟使能(手动)定义:0(时钟关闭),1(时钟开启)19位:UART4RST-UART4时钟使能(手动)定义:0(时钟关闭),1(时钟开启)18位:UART3RST-UART3时钟使能(手动)定义:0(时钟关闭),1(时钟开启)17位:UART2RST-UART2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)15位:SPI3RST-SPI3时钟使能(手动)定义:0(时钟关闭),1(时钟开启)14位:SPI2RST-SPI2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)11位:WWDGRST-WWDG时钟使能(手动)定义:0(时钟关闭),1(时钟开启)5位:TIM7RST-TIM7时钟使能(手动)定义:0(时钟关闭),1(时钟开启)4位:TIM6RST-TIM6时钟使能(手动)定义:0(时钟关闭),1(时钟开启)3位:TIM5RST-TIM5时钟使能(手动)定义:0(时钟关闭),1(时钟开启)2位:TIM4RST-TIM4时钟使能(手动)定义:0(时钟关闭),1(时钟开启)1位:TIM3RST-TIM3时钟使能(手动)定义:0(时钟关闭),1(时钟开启)0位:TIM2RST-TIM2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)RCC_BDCR(备份时钟控制寄存器)
325保留2423222124321RTCEN保留RTCSEL[1:0]保留LSEBYPLSERDY16位:BDRST备份域软件复位(手动)定义:0(复位未激活),1(复位整个备份域)15位:RTCEN-RTC时钟使能(手动)定义:0(RTC时钟关闭),1(RTC时钟开启)9-8位:RTCSEL[1:0]RTC时钟源选择(手动)一旦选定,则直到下次后被域被复位前不能改变,可通过设置BDRST来清除 定义:00(无时钟),01(LSE为时钟),10(LSI为时钟),11(HSE振荡器在128分频后做时钟)2位:LSEBYP低速时钟振荡器旁路(手动)只有在外部振荡器关闭时,才能写入该位低速振荡器周期才被清零。定义:0(无旁路),1(有旁路)1位:LSERDY外部低速LSE就绪(自动)在LSEON被清零后,该位需要6个低速周期才被清零。定义:0(外部振荡器未就绪),1(外部振荡器就绪)0位:LSEON外部低速振荡器使能(软件)定义:0(外部振荡器关闭),1(外部振荡器开启)RCC_CSR(RCC时钟控制/状态寄存器)3191817LPWRRSTFWWDGRSTFIWDGRSTFSFTRSTFPORRSTFPINRSTF保留RMVF保留保留LSIRDY31位:LWRRSTF低功耗复位标志(自动),由软件通过写RMVF位清除,定义:0(无低功耗管理复位发生),1(发生低功耗管理复位)30位:WWDGRSTF窗口看门狗复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)29位:IWDGRSTF窗口看门狗复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)28位:SFTRSTF软件复位标志(自动)由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)27位:PORRSTF上电掉电复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)26位:PINRSTF-NRST引脚复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)24位:RMVF清除复位标志(手动),定义:0(无作用),1(清除复位标志)1位:LSIRDY内部低速振荡器就绪(自动),在LSION清零后,3个内部40K振荡周期后LSIRDY被清零,定义:0(内部未就绪),1(内部RC振荡器开启)
0位:LSION内部低速振荡器使能(软件),定义:0(内部振荡器关闭),1(内部振荡器开启)GPIO输入输出相关寄存器GPIOx_CRL(端口配置低寄存器x=A„E)3191817CNF7[1:0]MODE7[1:0]CNF6[1:0]MODE6[1:0]CNF5[1:0]MODE5[1:0]CNF4[1:0]MODE4[1CNF3[1:0]MODE3[1:0]CNF2[1:0]MODE2[1:0]CNF1[1:0]MODE1[1:0]CNF0[1:0]MODE0[131-0单位:CNF端口x配置位(软件控制0-7管脚)定义:在输入模式[1:0]=00下:00(模拟输入),01(浮空输入(复位后状态),10(上/下拉输入),11(保留 在输出模式(MODE[1:0]>00)下:00(通用推挽),01(通用开漏),10(复用推挽),11(复用开漏)31-0双位:MODE端口x的模式位(软件控制0-7管脚)定义:00(输入模式(复位后模式),01(最大10M输入),10(最大2M输出),11(最大50M输出)GPIOx_CRH(端口配置高寄存器x=A„E)3191817CNF15[1:0]MODE15[1:0]CNF14[1:0]MODE14[1:0]CNF13[1:0]MODE13[1:0]CNF12[1:0]MODE12[CNF11[1:0]MODE11[1:0]CNF10[1:0]MODE10[1:0]CNF9[1:0]MODE9[1:0]CNF8[1:0]MODE8[131-0单位:CNF端口x配置位(软件控制8-15管脚)定义:在输入模式[1:0]=00下:00(模拟输入),01(浮空输入(复位后状态),10(上/下拉输入),11(保留 在输出模式(MODE[1:0]>00)下:00(通用推挽),01(通用开漏),10(复用推挽),11(复用开漏)31-0双位:MODE端口x的模式位(软件控制8-15管脚)定义:00(输入模式(复位后模式),01(最大10M输入),10(最大2M输出),11(最大50M输出)GPIOx_IDR(端口输入数据寄存器x=A„E)3191817保留IDR15IDR14IDR13IDR12IDR11IDR10IDR9IDR8IDR7IDR6IDR5IDR4IDR3IDR2IDR115-0位:IDRy端口输入数据(y=15-0)这些位为只读并只能以16位的形式读出。读出的值为对应IO的状态。GPIOx_ODR(端口输出数据寄存器x=A„E)3191817保留ODR15ODR14ODR13ODR12ODR11ODR10ODR9ODR8ODR7ODR6ODR5ODR4ODR3ODR2ODR115-0位:ODRy端口输出数据(y=15-0)这些位可读可写并只能以字的形式操作。注:对GPIOx_BSRR,可以分别的对各个ODR位进行独立的设置/清除。GPIOx_BSRR(端口位设置/清除寄存器x=A„e)3191817BR15BR14BR13BR12BR11BR10BR9BR8BR7BR6BR5BR4BR3BR2BR1BS15BS14BS13BS12BS11BS10BS9BS8BS7BS6BS5BS4BS3BS2BS131-16位:BRy清除端口x的位,这些位只能写入并只能以字的形式操作,定义:0(对应的ODRy位不产生影响),1(清除对应ODRy位为0)15-0位:Bsy设置端口x的位,这些位只能写入并只能以字的形式操作,定义:0(对应的ODRy位不产生影响),1(设置对应ODRy位为1)注:如果同时设置了Bsy和Bry的对应位,Bsy位起作用。GPIOx_BRR(端口位清除寄存器x=A„E)3191817
保留BR15BR14BR13BR12BR11BR10BR9BR8BR7BR6BR5BR4BR3BR2BR115-0位:Bry清除端口x的位(y=15-0)这些位只能写入并只能以字的形式操作,定义:0(对对应位无影响),1(清除对应位的ODR位为0)GPIOx_LCKR(端口配置锁定寄存器x=A„E)3191817保留LCK15LCK14LCK13LCK12LCK11LCK10LCK9LCK8LCK7LCK6LCK5LCK4LCK3LCK2LCK116位:LCKK锁键,该位可随时读出,它只可通过锁键写入序列修改,定义:0(端口配置锁键位激活),1(端口配置锁位被激活,下次复位前GPIOx_LCKR被锁住) 锁键写序列:写1-》写0-》写1-》读0-》读1 最后一个读可省略,但可以用来确认锁键已被激活 注:在操作锁键的写入序列时,不能改变LCK[15-0]的值,且操作写入序列中的任何错误将不能激活锁键15-0位:LCKy端口x的锁位y(y=0-15)这些位可读可写但只能在LCKK位为0时写入,定义:0(不锁定端口的配置),1(锁定端口的配置)AFIO_EVCR(事件控制寄存器)3191817保留保留EVOEPORT[2:0]PIN[3:0]7位:EVOE允许事件输出(手动)当设置该位后,Cortex的EVENOUT将连接到由PORT[2:0]和PIN[3:0]选定的IO口6-4位:PORT[2:0]端口选择,选择用于输出Cortex的EVENTOUT信号的端口。定义:000(PA),001(PB),010(PC),011(PD),100(PE)3-0位:PIN[3:0]引脚选择,选择用于输出Cortex的EVENTOUT信号引脚, 定义:0000(选择Px0),0001(选择Px1),0010(选择Px2),0011(选择Px3),0100(选择Px4),0101(选择Px5),0110(选择Px6),0111(选择Px7) 1000(选择Px8),1001(选择Px9),1010(选择Px10),1011(选择Px11),1100(选择Px12),1101(选择Px13),1110(选择Px14),1111(选择Px15)AFIO_MAPR(复用重映射和调试IO配置寄存器)3191817保留SWJ_CFG[2:0]保留ADC2REGADC2INJADC1REGADC1INJPD01CAN_REMAP[1:0]TIM4TIM3_REMAPTIM2_REMAPTIM1_REMAPUSART3_REMAPUSART3USART1I2C26-24位:SWJ_CFG[2:0]串行线JTAG配置,这些位只可由软件写,读这些位将返回未定义的数值。用于配置SWJ和跟踪复用功能IO口。SWJ(串行JTAG) 支持JTAG或SWD访问Cortex的调试端口。系统复位后的默认状态时启用SWJ但没有跟踪功能,这种状态下可以通过JTMS/JTCK脚上的特定信号选择JTAG或SW模 定义:000(完全SWJ,复位状态),001(完全SWJ,但没有NJTRST),010(关闭JATG启动SW),100(关闭JATG,关闭SW)20位:ADC2_ETRGREG_REMAP-adc2规则转换外部触发重映射(手动)它控制与ADC2注入转换外部触发相连的触发输入。当该位置0时, ADC2规则转换外部触发与EXTI11相连;当该位置1时,ADC2规则转换外部触发与TIM8_TRGO相连19位:ADC2_ETRGINJ_REMAP-ADC2注入转换外部触发重映射(手动),它控制与ADC2注入转换外部触发相连的触发输入。当该位置0时 ADC2注入转换外部触发与EXTI15相连;当该位置1时,ADC2注入转换外部触发与TIM8通道4相连。18位:ADC1_ETRGREG_REMAP-adc1规则转换外部触发重映射(手动)它控制与ADC1注入转换外部触发相连的触发输入。当该位置0时, ADC1规则转换外部触发与EXTI11相连;当该位置1时,ADC1规则转换外部触发与TIM8_TRGO相连17位:ADC1_ETRGINJ_REMAP-ADC1注入转换外部触发重映射(手动),它控制与ADC1注入转换外部触发相连的触发输入。当该位置0时 ADC1注入转换外部触发与EXTI15相连;当该位置1时,ADC1注入转换外部触发与TIM8通道4相连。16位:TIM5CH4_IREMAP-TIM5通道4内部重映射(手动)它控制TIM5通道4内部映像。定义:0(TIM5_CH4与PA3相连),1(LSI内部振荡器与TIM5_CH4相连,对LSI校准
15位:PD01_REMAP端口D0/端口D1映像到OSC_IN/OSC_OUT(手动)当不使用HSE时PD0和PD1可映像到这两个管脚,定义:0(不映像),1(PD0-IN,PD1-OUT)14-13位:CAN_REMAP[1:0]CAN复用功能重影像(手动)在只有单个CAN接口的产品上控制复用功能的重映像12位:TIM4_REMAP定时器4的重映像(手动)控制将TIM4的通道1-4映射到GPIO上11-10位:TIM3_REMAP[1:0]定时器3重映像(手动),控制定时器3的1-4通道在GPIO端口的映像9-8位:TIM2_REMAP[1:0]定时器2重映像(手动)控制定时器2的1-4通道和外部触发ETR在GPIO端口的映像7-6位:TIM1_REMAP[1:0]定时器1的重映像(手动)控制定时器1的通道1-4、1N-3N、外部触发和刹车输入在GPIO的映像5-4位:USART3_REMAP[1:0]USART3的重映像(手动)控制USART3的CTS、RTS、CK、TX、RX复用功能在GPIO端口的映像3位:USART2_REMAP[1:0]USART3的重映像(手动)控制USART2的CTS、RTS、CK、TX、RX复用功能在GPIO端口的映像2位:USART1_REMAP-USART1的重映像(手动)控制USART1的TX、RX复用功能在GPIO端口的映像1位:I2C1_REMAP-I2C1的重映像控制I2C1的SCL和SDA复用功能在GPIO端口的映像
0位:SPI1_REMAP-SPI1的重映像控制SPI1的NSS、SCK、MISO、MOSI复用功能在GPIO端口的映像中断和事件相关寄存器AFIO_EXTICR1(外部中断配置寄存器1)3191817保留EXTI3[3:0]EXTI2[3:0]EXTI1[3:0]EXTI0[3:0]15-0位:EXTI[3:0]EXTIx(x=0-3)配置(手动)用于选择EXTIx外部中断输入源 定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(PG[x]引AFIO_EXTICR2(外部中断配置寄存器2)3191817保留EXTI7[3:0]EXTI6[3:0]EXTI5[3:0]EXTI4[3:0]15-0位:EXTI[3:0]EXTIx(x=4-7)配置(手动)用于选择EXTIx外部中断输入源 定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(PG[x]引AFIO_EXTICR3(外部中断配置寄存器3)3191817保留EXTI11[3:0]EXTI10[3:0]EXTI9[3:0]EXTI8[3:0]15-0位:EXTI[3:0]EXTIx(x=8-11)配置(手动)用于选择EXTIx外部中断输入源 定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(PG[x]引AFIO_EXTICR4(外部中断配置寄存器4)3191817保留EXTI15[3:0]EXTI14[3:0]EXTI13[3:0]EXTI12[3:0]15-0位:EXTI[3:0]EXTIx(x=12-15)配置(手动)用于选择EXTIx外部中断输入源 定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(PG[x]引2622212019保留MR19MR1109876543MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR219-0位:MRx线x上的事件屏蔽,定义:0(屏蔽来自线x上的事件请求),1(开放来自线x上的时间请求)注:19只用于互联型,对其他芯片保留EXTI_EMR(中断屏蔽寄存器)3EXTI_IMR(中断屏蔽寄存器)25242318MR172MR11711817
保留MR19MR18MR11MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR119-0位:MRx线x上的事件屏蔽,定义:0(屏蔽来自线x上的事件请求),1(开放来自线x上的时间请求)注:19只用于互联型,对其他芯片保留EXTI_RTSR(上升沿触发选择寄存器)3191817保留TR19TR18TR11TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR10-19位:TRx线x的上升沿触发时间配置位,定义:0(禁止输入线x上的上升沿触发(中断和事件),1(允许输入线x上的上升沿触发(中断和时间)注19位用于互联型EXTI_FTSR(下降沿触发选择寄存器)3191817保留TR19TR18TR11TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR10-19位:TRx线x的上升沿触发时间配置位,定义:0(禁止输入线x上的上升沿触发(中断和事件),1(允许输入线x上的上升沿触发(中断和时间)注19位用于互联型EXTI_SWIER3191817保留SWIER19SWIER18SWIER11SWIER15SWIER14SWIER13SWIER12SWIER11SWIER10SWIER9SWIER8SWIER7SWIER6SWIER5SWIER4SWIER3SWIER2SWIER119-0位:SWIERx线x上的软件中断,当该位为0时,写1将设置EXTI_PR中相应的挂起位。如果在EXTI_IMR和EXTI_EMR中允许产生中断,则此时将产生一个中断。 注:通过清除EXTI_PR的对应位(写1),可清除该位为0,19位为互联型,对其他芯片为保留EXTI_PR(挂起寄存器)3191817保留PR19PR18PR11PR15PR14PR13PR12PR11PR10PR9PR8PR7PR6PR5PR4PR3PR2PR119-0位:PRx挂起位,定义:0(没有发生触发请求),1(发生了选择的触发请求) 注:19位用于互联型,对其他产品为保留位
当在外部中断线上发生了选择的边沿事件,该位被置1。在该位中写入1可以清除它,也可以通过改变边沿检测的极性清除。DMA相关寄存器DMA_ISR(DMA中断状态寄存器3191817保留TEIF7HTIF7TCIF7GIF7TEIF6HTIF6TCIF6GIF6TEIF5HTIF5TCIF5TEIF4HTIF4TCIF4GIF4TEIF3HTIF3TCIF3GIF3TEIF2HTIF2TCIF2GIF2TEIF1HTIF1TCIF127,23,19,15,11,7,3位:TEIFx通道x的传输错误标志(x=1„7)(硬件控制)在DMA_IFCR寄存器的相应位写1可清除这些标志位,定义:0(无错),1(有错)26,22,18,14,10,6,2位:HTIFx通道x的办传输标志(x=1„7)(硬件控制)在DMA_IFCR寄存器的相应位写1可清除这写位,定义:0(无半传输事件),1(有)25,21,17,13,9,5,1位:TCIFx通道x的传输完成标志(x=1„7)(硬件控制)在DMA_IFCR寄存器的相应位写入1可清除这些位,定义:(传输没完成),1(传输完成)24,20,16,12,8,4,0位:GIFx通道x的全局中断标志(x=1„7)(硬件控制)在DMA_IFCR寄存器的相应位写入1可清除这些位,定义:0(没有TE/HT/TC事件),1(有)DMA_IFCR(DMA中断标志清除寄存器)3191817保留CTEIF7CHTIF7CTCIF7CGIF7CTEIF6CHTIF6CTCIF6CGIF6CTEIF5CHTIF5CTCIF5CTEIF4CHTIF4CTCIF4CGIF4CTEIF3CHTIF3CTCIF3CGIF3CTEIF2CHTIF2CTCIF2CGIF2CTEIF1CHTIF1CTCIF127,23,19,15,11,7,3位:CTEIFx清除通道x的传输错误标志(x=1„7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应TEIF标志)26,22,18,14,10,6,2位:CHTIFx清除通道x的办传输标志(x=1„7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应HTIF标志)25,21,17,13,9,5,1位:CTCIFx清除通道x的传输完成标志(x=1„7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应HTIF标志)24,20,16,12,8,4,0位:CGIFx清除通道x的全局中断标志(x=1„7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应HTIF标志)DMA_CCRx(DMA通道x配置寄存器x=1„7)3191817保留保留MEM2MEMPL[1:0]MSIZE[1:0]PSIZE[1:0]MINCPINCCIRCDIRTEIEHTIETCIE14位:MEM2MEM存储器到存储器模式(手动),定义:0(非存储器到存储器模式),1(启动存储器到存储器模式)13和12位:PL[1:0]通道优先级(手动),定义:00(低),01(中),10(高),11(最高)11和10位:MSIZE[1:0]存储器数据宽度(手动)定义:00(8位),01(16位),10(32位),11(保留)9和8位PSIZE[1:0]外设数据宽度(手动)定义:00(8位),01(16位),10(32位),11(保留)7位:MINC存储器地址增量模式(手动)定义:0(不执行存储器地址增量操作),1(执行存储器地址增量操作)6位:PINC外设地址增量模式(手动)定义:0(不执行存储器地址增量操作),1(执行存储器地址增量操作)5位:CIRC循环模式(手动)定义:0(不执行循环操作),1(执行循环操作)4位:DIR数据传输方向(手动)定义:0(从外设读),1(从存储器读)3位:TEIE允许传输错误中断(手动)定义:0(禁止TE中断),1(允许TE中断)2位:HEIE允许半传输中断(手动)定义:0(禁止TE中断),1(允许TE中断)1位:TCIE允许传输完成中断(手动)定义:0(禁止TE中断),1(允许TE中断)0位:EN开启通道(手动)定义:0(不工作),1(开启)DMA_CNDTRx(DMA通道x传输数量寄存器x=1„7)3191817保留
NDT15-0位:DNT[15:0]数据传输数量,数据传输数量为0到65535。这个寄存器只能在通道不工作(DMA_CCRx的EN=0)时写入,通道开启后该寄存器变为只读指令剩余的 待传输字节数目。寄存器内容在每次DMA传输后递减。数据传输结束后,寄存器的内容或者变为0,或者当该通道配置为自动重加载模式时,寄存器的内容 被自动重新加载为之前配置时的数值。当寄存器的内容为0时,无论通道是否开启,都不会发生任何数据传输DMA_CPARx(DMA通道x外设地址寄存器x=1„7)3191817PAPA31-0位:PA[31:0]外设地址,外设数据寄存器的基地址,作为数据传输的源或目标,当开启通道(DMA_CCRx的EN=1)时不能写该寄存器, 当PSIZE=01(16位),不使用PA[0]位。操作自动的与半字节地址对齐,当PSIZE=10(32位)时,不使用PA[1:0]位。操作自动的与字地址对齐DMA_CMARx(DMA通道x存储器地址寄存器x=1„7)3191817MAMA31-0位:MA[31:0]外设地址,外设数据寄存器的基地址,作为数据传输的源或目标,当开启通道(DMA_CCRx的EN=1)时不能写该寄存器,
当MSIZE=01(16位),不使用MA[0]位。操作自动的与半字节地址对齐,当MSIZE=10(32位)时,不使用MA[1:0]位。操作自动的与字地址对齐ADC相关寄存器3ADC_SR(ADC状态寄存器)252423保留9872262152保留STRTJSTRTJEOCEOC4位:STRT规则通道开始位(硬件在开始转换时置位,软件清0)定义:0(规则通道未开始转换),1(规则通道已开始转换)3位:JSTRT注入通道开始位(硬件在开始转换时置位,软件清0)定义:0(规则通道未开始转换),1(规则通道已开始转换)2位:JEOC注入通道转换结束位(硬件在所有注入通道转换结束时设置,由软件清0)定义:0(转换未完成),1(转换完成)1位:转换结束位(该位由硬件在(规则或注入)通道组转换结束时设置,由软件清除或由读取ADC_DR时清除,定义:0(转换未完成),1(转换完成)0位:AWD模拟看门狗标志,该位在硬件转换的电压值超出了ADC_LTR和ADC_HTR寄存器定义的范围时置位,由软件清0,定义:0(没事件),1(有事件)ADC_CR1(ADC控制寄存器1)3191817保留AWDENJAWDEN保留DUALMOD[3:0]DISCNUM[2:0]JDISCNDISCENJAUTOAWDSGLSCANJEOCIEAWDIEEOCIEAWDCH[4:0]23位:AWDEN在规则通道上开启模拟看门狗(手动)定义:0(在规则通道上禁用模拟开门狗),1(使用)22位:JAWDEN在注入通道上开启模拟看门狗(手动)定义:0(在规则通道上禁用模拟开门狗),1(使用)19-16位:DUALMOD[3:0]双模式选择(手动)定义:0000(独立模式),0001(混合同步规则+注入同步模式),0010(混合同步规则+交替触发模式) 0011(混合同步注入+快速交叉模式),0100(混合同步注入+慢速交叉模式),0101(注入同步模式),0110(规则同步模式),0111(快速交叉模式) 1000(慢速交叉模式),1001(交替触发模式)注:在ADC2和ADC3中这些位为保留,在双模式中,改变通道的配置会产生一个重新开始的条件,则将导致 同步丢失,建议在进行任何配置改变前关闭双模式15-13位:DISCNUM[2:0]间断模式通道计数,软件通过这些位定义在间断模式下收到外部触发后转换规则通道的数目,定义:000(1通道)001(2通道)111(8通道12位:JDISCEN在注入通道上的间断模式,(手动)用于开启或关闭注入通道组上的间断模式,定义:0(注入通道注组上禁用间断模式),1(使用)11位:DISCEN在规则通道上的间断模式,(手动)用于开启或关闭规则通道组函的间断模式,定义:0(规则通道组注上禁用间断模式),1(使用)10位:JAUTO自动的注入通道组转换,(手动)用于开启或关闭规则通道组转换结束后自动的注入通道组转换,定义:0(关闭自动注入通道组的转换),1(开启)9位:AWDSGL扫描模式中在一个单一的通道上使用看门狗(手动)用于开启或关闭AWDCH[4:0]位指定的通道上的看门狗功能,定义:(在所有通道用),1(单一通道8位:SCAN扫描模式(手动)用于开启或关闭扫描模式,在扫描模式中,转换由ADC_SQRx或ADC_JSQRx寄存器选中的通道,定义:0(关闭),1(使用扫描模式)7位:JEOCIE允许产生注入通道转换结束中断(手动)用于禁止或允许所有注入通道转换结束后产生的中断,定义:0(禁止JEOC中断),1(当置位JEOC时产生中断6位:AWDIE允许产生模拟看门狗中断(手动),在扫描模式下,如果看门狗检测到超范围数值时,只有在设置了该位时扫描才会终止。定义:0(禁止),1(允许5位:EOCIE允许产生EOC中断(手动)用于禁止或允许转换后产生中断,定义:0(禁止EOC中断),1(允许,当硬件置位EOC时产生中断)4-0位:AWDCH[4:0]模拟看门狗通道选择位(手动)选择模拟看门狗保护的输入通道,00000(0通道)00001(1通道)01111(16)10000(16)10001(17)其他保 注:ADC1的模拟输入通道16和17在芯片内部分别连到了温度传感器和Vrefint,ADC2的模拟输入通道16和17连到了VSS,ADC3模拟输入9/14/15/16/17与VSSADC_CR2(ADC控制寄存器2)3191817保留TSVREFESWSTARTJSWSTARTEXTTRIGEXTSEL[2:0]JEXTTRIGJEXTSEL[2:0]ALIGN保留DMA保留RSTCALCALCONT23位:TSVREFE温度传感器和Vrefint使能(手动)在多余1个ADC的器件中该位仅出现在ADC1中,定义:0(禁止),1(开启)22位:SWSTART开始转换规则通道(软件启动该位,转换后硬件马上清除此位)如果在EXTSEL[2:0]位中选择了SWSTART为触发事件,该位用于启动一组规则通道的转
定义:0(复位状态),1(开始转换规则通道)21位:JSWSTART开始转换注入通道,(软件启动该位,转换后硬件马上清除此位)如果在JEXTSEL[2:0]位中选择了JSWSTART位触发事件,启动一组注入通道的转换 定义:0(复位状态),1(开始转换注入通道)20位:EXTTRIG规则通道的外部触发转换模式(手动),定义:0(不用外部事件启动转换),1(使用外部事件启动转换)19-17位:EXTSEL[2:0]选择启动规则通道组转换的外部事件,这些位选择用于启动规则通道组转换的外部事件,ADC1和ADC2的触发配置如下 定义:000(T1的CC1事件)001(T1的CC2事件)010(T1的CC3事件)011(T2的CC2事件)100(T3的TRGO事件)101(T4的CC4事件)110EXTI线11/T8_TRGO事 111(SWSTART) ADC3的触发配置如下:000(T3的CC1事件)001(T2的CC3事件)010(T1的CC3事件)011(T8的CC1事件)100(T8的TRGO事件)101(T5的CC1事件)110(T5的CC3事件) 111(SWSTART)15位:JEXTTRIG注入通道的外部触发转换模式(手动)定义:0(不用外部事件启动转换),1(使用外部事件启动转换)14-12位:JEXTSEL[2:0]选择启动注入通道转换的外部事件,这些位选择用于启动注入通道组转换的外部事件,定义:ADC1和ADC2的触发配置如下 定义:000(T1的TRGO事件)001(T1的CC4事件)010(T2的TRGO事件)011(T2的CC1事件)100(T3的CC4事件)101(T4的TRGO事件)110(EXTI线15/T8_CC4事件) 111(JSWSTART) ADC3触发配置,定义:000(T1的TRGO)001(T1的CC4)010(T4的CC3)011(T8的CC2)100(T8的CC4)101(T5的TRGO)110(T5的CC4)111(JSWSTART)11位:ALIGN数据对齐(手动)定义:0(右对齐),1(左对齐)8位:DMA字节存储器访问模式(手动)定义:0(不使用DMA模式),1(使用)3位:RSTCAL复位校准(手动,在校准寄存器被初始化后该位将被清除,定义:0(校准寄存器已初始化),1(初始化校准寄存器) 注:如果正在进行转换时设置RSTCAL,清除校准寄存器需要额外的周期2位:CAL-A/D校准(该位软件置1,在校准结束时由硬件清除),定义:0(校准完成),1(开始校准)1位:CONT连续转换(手动,如果设置此位则转换将连续进行直到该位被清除),定义:0(单词转换),1(连续转换)0位:ADON开关AD转换器(手动)当该位为0时,写入1将把ADC从断电模式下唤醒。当该位为1时,写入1将启动转换,应用程序需注意,在转换器上电转换开始有 一个延迟Tstab,定义:0(关闭ADC转换和校准,并进入断电模式),1(开启ADC并启动转换) 注:如果在这个寄存器与ADON一起还有其他位改变,则转换不被触发。则是为了防止触发错误的转换。ADC_SMPR1(ADC采样时间寄存器)
3191817保留SMP17[2:0]SMP16[2:0]SMP15[2SMP15[0]SMP14[2:0]SMP13[2:0]SMP12[2:0]SMP11[2:0]SMP10[2:0]23-0位:SMPx[2:0]选择通道x的采样时间,定义:000(1.5周期)001(7.5)010(13.5)011(28.5)100(41.5)101(55.5)110(71.5)111(239.5)ADC_SMPR1(ADC采样时间寄存器)
3191817保留SMP9[2:0]SMP8[2:0]SMP7[2:0]SMP6[2:0]SMP5[2SMP5[0]SMP4[2:0]SMP3[2:0]SMP2[2:0]SMP1[2:0]SMP0[2:0]29-0位:SMPx[2:0]选择通道x的采样时间,定义:000(1.5周期)001(7.5)010(13.5)011(28.5)100(41.5)101(55.5)110(71.5)111(239.5)ADC_JOFRx(ADC注入通道数据偏移寄存器x=1„4)3191817保留保留JOFFSETx11-0位:JOFFSETx[11:0]注入通道x的数据偏移,当转换注入通道时,这些位定义了用于从原始转换数据中减去的数值。转换的结果可以在ADC_JDRx寄存器中读出ADC_HTR(ADC看门狗高阀值寄存器)
31097654保留HT[11:0]11-0位:HT[11:0]模拟看门狗高阀值,这些位定义了模拟看门狗的阀值高限。ADC_LRT(ADC看门狗低阀值寄存器)3保留0987654保留11-0位:LT[11:0]模拟看门狗低阀值,这些位定义了模拟看门狗的阀值低限ADC_SQR1(ADC规则序列寄存器1)3L[3:0]0987654SQ16SQ15[2:0]SQ14[2:0]23-20位:L[3:0]规则通道序列长度,这些位由软件定义在规则通道转换序列中的通道数目,定义:0000(1个转换)„1111(16个转换)19-15位:SQ16[4:0]规则序列中的第16个转换,这些位由软件定义转换序列中的第16个转换通道的编号(0~17)。14-10位:SQ15[4:0]规则序列中的第15个转换9-5位:SQ14[4:0]规则序列中的第14个转换4-0位:SQ13[4:0]规则序列中的第13个转换ADC_SQR2(ADC规则序列寄存器2)3保留SQ12[4:0]SQ11[4:0]0987654SQ10[0]SQ9[4:0]SQ8[4:0]29-25位:SQ12[4:0]规则序列中的第12个转换,这些位由软件定义转换序列中的第12个转换通道的编号(0~17)。24-20位:SQ11[4:0]规则序列中的第11个转换,
19-15位:SQ10[4:0]规则序列中的第10个转换,
14-10位:SQ9[4:0]规则序列中的第9个转换
9-5位:SQ8[4:0]规则序列中的第8个转换,4-0位:SQ7[4:0]规则序列中的第7个转换,ADC_SQR3(ADC规则序列寄存器3)3保留SQ6[4:0]SQ5[4:0]0987654SQ4[0]SQ3[4:0]SQ2[4:0]29-25位:SQ6[4:0]规则序列中的第6个转换,这些位由软件定义转换序列中的第12个转换通道的编号(0~17)。24-20位:SQ5[4:0]规则序列中的第5个转换,
19-15位:SQ4[4:0]规则序列中的第4个转换,
14-10位:SQ3[4:0]规则序列中的第3个转换
9-5位:SQ2[4:0]规则序列中的第2个转换,24保留8232221817SQ16[4:1]321SQ13[2:0]191817SQ10[4:0]321SQ7[4:0]1918SQ4[4:0]32SQ1[4:0]171
4-0位:SQ1[4:0]规则序列中的第1个转换,1817JSQ4[4:1]8764321JSQ4[0]JSQ3[4:0]JSQ2[4:0]JSQ1[4:0]21-20位:JL[1:0]注入通道序列长度,这些位由软件定义在规则通道转换序列中的通道数目。定义:00(1个转换),01(2个转换),10(3个转换),11(4个转19-15位:JSQ4[4:0]注入序列中的第4个转换,这些位由软件定义转换序列中的第4个转换通道的编号(0~17)。 注:不同于规则转换序列,如果JL[1:0]的长度小于4,则转换的序列顺序是从(4-JL)开始。例如:ADC_JSQR[21:0] = 10 00011 00011 00111 00010 意味着扫描转换将按下列通道顺序转换:7、3、3,而不是2、7、3。14-10位:JSQ3[4:0]:注入序列中的第3个转换9-5位:JSQ3[4:0]:注入序列中的第2个转换4-0位:JSQ1[4:0]:注入序列中的第1个转换ADC_JDRx(ADC 注入数据寄存器x=1„4)3191817保留JDATA[15:0]15-0位:JDATA[15:0]注入转换的数据,这些位为只读,包含了注入通道的转换结果。数据是左对齐或右对齐ADC_DR(ADC规则数据寄存器)3191817ADC2DATA[15:0]DATA[15:0]31-16位:ADC2DATA[15:0]ADC2转换的数据,在ADC1中:双模式下,这些位包含了ADC2转换的规则通道数据,在ADC2和ADC3中:不使用这些位3130292827保留1126ADC_JSQRADC(注入序列寄存器)2524232221JL[3:0]52019
15-0位:规则转换的数据,这些位为只读,包含了规则通道的转换结果。数据是左对齐或右对齐DAC相关寄存器DAC_CR(DAC控制寄存器)3191817保留DMAEN2MAMP2[3:0]WAVE2[2:0]TSEL2[2:0]TEN2BOFF2保留DMAEN2MAMP1[3:0]WAVE1[2:0]TSEL1[2:0]TEN1BOFF128位:DMAEN2-DAC通道2 DMA使能,该位由软件设置和清除,定义:0(关闭DAC通道2DMA模式),1(使能)27-24位:MAMP2[3:0]DAC通道2屏蔽/幅值选择器(手动)用来在噪声生成模式下选择屏蔽位,在三角波生成模式下选择波形的幅值 定义:0000:不屏蔽LSFR位0 / 三角波幅值等于1;0001:不屏蔽LSFR位[1:0] / 三角波幅值等于3;0010:不屏蔽LSFR位[2:0] / 三角波幅值等于7; 0011: [3:0]/15;0100:[4:0] / 31;0101:[5:0] /63;0110:[6:0] / 127;0111:[7:0] / 255;1000:[8:0] / 三511;1001:[9:0] / 102 1010:[10:0] / 2047;≥1011: [11:0] / 409523-22位:WAVE2[1:0]DAC通道2噪声/三角波生成使能(手动)定义:00(关闭波形发生器)10(使能噪声波形发生器)1x(使能三角波发生器)21-19位:TSEK2[2:0]DAC通道2触发选择,该3位用于选择DAC通道2的外部触发事件,定义:000(TIM6 TRGO事件)001(F107时T3的TRGO事件,对于F103是T8的TRGO 010(TIM7 TRGO事件)011(TIM5 TRGO事件)100(TIM2 TRGO事件)101(TIM4 TRGO事件)110(外部中断线9)111(软件触发) 注意:该3位只能在TEN2 = 1(DAC通道2触发使能)时设置18位:TEN2DAC通道2触发使能(手动)使能/关闭DAC通道2的触发,定义:0(关闭触发,写入DAC_DHRx寄存器的数据在1个APB1时钟周期后传入DAC_DOR2寄存器) 1:使能DAC通道2触发,写入DAC_DHRx寄存器的数据在3个APB1时钟周期后传入DAC_DOR2寄存器。 注意:如果选择软件触发,写入寄存器DAC_DHRx的数据只需要1个APB1时钟周期就可以传入寄存器DAC_DOR2。17位:BOFF2关闭DAC通道2输出缓存,用来使能/关闭DAC通道2的输出缓存,定义:0(使能DAC通道2输出缓存)1(关闭DAC通道2输出缓存)16位:EN2DAC通道2使能,定义:0(关闭DAC通道2),1(使能DAC通道2)12位:DMAEN1-DAC通道1 DMA使能(手动),定义:0(关闭DAC通道1 DMA模式),1(使能DAC通道1 DMA模式)11-8位:MAMP1[3:0]DAC通道1屏蔽/幅值选择器(手动)用来在噪声生成模式下选择屏蔽位,在三角波生成模式下选择波形的幅值 定义:0000:不屏蔽LSFR位0 / 三角波幅值等于1;0001:不屏蔽LSFR位[1:0] / 三角波幅值等于3;0010:不屏蔽LSFR位[2:0] / 三角波幅值等于7; 0011: [3:0]/15;0100:[4:0] / 31;0101:[5:0] /63;0110:[6:0] / 127;0111:[7:0] / 255;1000:[8:0] / 三511;1001:[9:0] / 102 1010:[10:0] / 2047;≥1011: [11:0] / 40957-6位:WAVE1[1:0]DAC通道1噪声/三角波生成使能(手动)定义:00(关闭波形发生器)10(使能噪声波形发生器)1x(使能三角波发生器)5-3位:TSEK1[2:0]DAC通道1触发选择,该3位用于选择DAC通道1的外部触发事件,定义:000(TIM6 TRGO事件)001(F107时T3的TRGO事件,对于F103是T8的TRGO事 010(TIM7 TRGO事件)011(TIM5 TRGO事件)100(TIM2 TRGO事件)101(TIM4 TRGO事件)110(外部中断线9)111(软件触发) 注意:该3位只能在TEN1 = 1(DAC通道1触发使能)时设置2位:TEN1DAC通道1触发使能(手动)使能/关闭DAC通道1的触发,定义:0(关闭触发,写入DAC_DHRx寄存器的数据在1个APB1时钟周期后传入DAC_DOR2寄存器) 1:使能DAC通道2触发,写入DAC_DHRx寄存器的数据在3个APB1时钟周期后传入DAC_DOR1寄存器。 注意:如果选择软件触发,写入寄存器DAC_DHRx的数据只需要1个APB1时钟周期就可以传入寄存器DAC_DOR1。1位:BOFF1关闭DAC通道1输出缓存,用来使能/关闭DAC通道1的输出缓存,定义:0(使能DAC通道1输出缓存)1(关闭DAC通道1输出缓存)0位:DAC通道1使能,(手动),0(关闭),1(使能)DAC_SWTRIGR(DAC软件触发寄存器)3191817保留保留SWTRIG21位:SWTRIG2-DAC通道2软件触发,定义:0(关闭DAC通道2软件触发),1(使能DAC通道2软件触发)
注意:一旦寄存器DAC_DHR2的数据传入寄存器DAC_DOR2,(1个APB1时钟周期后)该位由硬件置’0’。0位:SWTRIG1-DAC通道1软件触发,定义:0(关闭DAC通道1软件触发),1(使能DAC通道1软件触发) 注意:一旦寄存器DAC_DHR1的数据传入寄存器DAC_DOR1,(1个APB1时钟周期后)该位由硬件置’0’。DAC_DHR12R1(DAC通道1的12位右对齐数据保持寄存器)3134232221保留098765保留DACC1DHR[11:0]11-0位:DACC1DHR[11:0]DAC通道1的12位右对齐数据,该位由软件写入,表示DAC通道1的12位数据DAC_DHR12L1(DAC通道1的12位左对齐数据保持寄存器)3134232221保留098765DACC1DHR[11:0]11-0位:DACC1DHL[11:0]DAC通道1的12位左对齐数据,该位由软件写入,表示DAC通道1的12位数据DAC_DHR8R1(DAC通道1的8位右对齐数据保持寄存器)382保留543保留DACC1DHR[7:0]7-0位:DACC1DHR[7:0]DAC通道1的8位右对齐数据,该位由软件写入,表示DAC通道1的的8位数据DAC_DHR12R2(DAC通道2的12位右对齐数据保持寄存器)319保留09876543保留DACC2DHR[11:0]11-0位:DACC1DHR[11:0]DAC通道2的12位右对齐数据,该位由软件写入,表示DAC通道2的12位数据DAC_DHR12L2(DAC通道2的12位左对齐数据保持寄存器)319保留09876543DACC2DHR[11:0]11-0位:DACC1DHR[11:0]DAC通道2的12位右对齐数据,该位由软件写入,表示DAC通道2的12位数据DAC_DHR8R2(DAC通道2的8位右对齐数据保持寄存器)35保留7-0位:DACC1DHR[7:0]DAC通道2的8位右对齐数据,该位由软件写入,表示DAC通道2的的8位数据DAC_DHR12RD(双DAC的12位右对齐数据保持寄存器)3134232221保留DACC2DHR[11:0]15141343DACC2DHR[7:0]182171182保留191817
8765保留DACC1DHR[11:0]27-16位:DACC2DHR[11:0]DAC通道2的12位右对齐数据,该位由软件写入,表示DAC通道2的12位数据11-0位:DACC1DHR[11:0]:DAC通道1的12位右对齐数据,该位由软件写入,表示DAC通道2的12位数据DAC_DHR12LD(双DAC的12位左对齐数据保持寄存器)3134232221DACC2DHR[11:0]098765DACC1DHR[11:0]31-20位:DACC2DHR[11:0]DAC通道2的12位右对齐数据,该位由软件写入,表示DAC通道2的12位数据15-4位:DACC1DHR[11:0]:DAC通道1的12位右对齐数据,该位由软件写入,表示DAC通道2的12位数据DAC_DHR8RD(双DAC的8位右对齐数据保持寄存器)3134232221保留098765DACC2DHR[7:0]15-8位:DACC2DHR[7:0]DAC通道2的8位右对齐数据,该位由软件写入,表示DAC通道2的的8位数据7-0位:DACC1DHR[7:0]DAC通道1的8位右对齐数据,该位由软件写入,表示DAC通道1的的8位数据DAC_DOR1(DAC通道1数据输出寄存器)3134232221保留098765保留DACC1DOR[11:0]11-0位:DACC1DOR[11:0]:DAC通道1 输出数据,该位由软件写入,表示DAC通道1的输出数据DAC_DOR2(DAC通道2数据输出寄存器)3134232221保留098765保留DACC2DOR[11:0]318保留2保留1712DACC1DHR[7:0]2
11-0位:DACC2DOR[11:0]DAC通道2 输出数据,该位由软件写入,表示DAC通道2的输出数据高级定时器T1和T8相关寄存器TIMx_CR1(TIM1和TIM8控制寄存器1)保留CKD[1:0]ARPECMS[1:0]DIROPMURSUDIS9-8位:CKD[1:0]时钟分频因子,定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。 定义:00(tDTS = tCK_INT),01(tDTS = 2 x tCK_INT),10(tDTS = 4 x tCK_INT)11:保留7位:ARPE:自动重装载预装载允许位,定义:0(TIMx_ARR寄存器没有缓冲),1(TIMx_ARR寄存器被装入缓冲器)6-5位:CMS[1:0]选择中央对齐模式,定义:00:边沿对齐模式。计数器依据方向位(DIR)向上或向下计数。 01(中央对齐模式1。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器中CCxS=00)的输出比较中断标志位,只在计数器向下计数时被设 10(中央对齐模式2。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器中CCxS=00)的输出比较中断标志位,只在计数器向上计数时被设 11(中央对齐模式3,计数器交替地向上和向下计数,配置为输出的通道(TIMx_CCMRx寄存器中CCxS=00)的输出比较中断标志位,在计数器向上和向下计数时均被设 注:在计数器开启时(CEN=1),不允许从边沿对齐模式转换到中央对齐模式。4位:DIR:方向,定义:0(计数器向上计数),1(计数器向下计数),注:当计数器配置为中央对齐模式或编码器模式时,该位为只读3位:OPM:单脉冲模式,定义:0(在发生更新事件时,计数器不停止),1(在发生下一次更新事件(清除CEN位)时,计数器停止)2位:URS:更新请求源,软件通过该位选择UEV事件的源,0(如果使能更新中断或DMA请求,则计数器溢出/下溢-设置UG位-从模式控制器产生的更新会产生) 1:如果使能了更新中断或DMA请求,则只有计数器溢出/下溢才产生更新中断或DMA请求1位:UDIS禁止更新,软件通过该位允许/禁止UEV事件的产生,0:允许UEV。更新(UEV)事件由计数器溢出/下溢,设置UG位,从模式控制器产生的更新,事件产生 具有缓存的寄存器被装入它们的预装载值 1:禁止UEV。不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。如果设置了UG位或从模式控制器发出了一个硬件复位, 则计数器和预分频器被重新初始化。0位:CEN使能计数器,定义:0(禁止计数器),1(使能计数器)注:在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。 触发模式可以自动地通过硬件设置CEN位。在单脉冲模式下,当发生更新事件时,CEN被自动清除。TIMx_CR2(TIM1和TIM8控制寄存器2)保留OIS4OIS3NOIS3OIS2NOIS2OIS1NOIS1TI1SMMS[2:0]CCDSCCUS保留13,11,9位:OIS(1-4)N输出空闲状态(OC1N),定义:0(当MOE=0时,如果实现了OC1N,则死区后OC1=0),1(:当MOE=0时,如果实现了OC1N,则死区后OC1=1) 注:已经设置了LOCK(TIMx_BKR寄存器)级别1、2或3后,该位不能被修改14,12,10,8位:OIS1输出空闲状态1(OC1输出),定义:0(当MOE=0时,如果实现了OC1N,则死区后OC1=0),1(当MOE=0时,如果实现了OC1N,则死区后OC1=1) 注:已经设置了LOCK(TIMx_BKR寄存器)级别1、2或3后,该位不能被修改7位:TI1S-TI1选择,定义:0(TIMx_CH1引脚连到TI1输入),1(TIMx_CH1、TIMx_CH2和TIMx_CH3引脚经异或后连到TI1输入)6-4位:MMS主模式选择,这3位用于选择在主模式下送到从定时器的同步信息(TRGO)定义: 000:复位 – TIMx_EGR寄存器的UG位被用于作为触发输出(TRGO)。如果是触发输入产生的复位(从模式控制器处于复位模式), 则TRGO上的信号相对实际的复位会有一个延迟 001:使能 – 计数器使能信号CNT_EN被用于作为触发输出(TRGO)。有时需要在同一时间启动多个定时器或控制在一段时间内使能从定时器。 计数器使能信号是通过CEN控制位和门控模式下的触发输入信号的逻辑或产生。 当计数器使能信号受控于触发输入时,TRGO上会有一个延迟,除非选择了主/从模式(见TIMx_SMCR寄存器中MSM位的描述)。 010:更新 – 更新事件被选为触发输入(TRGO)。例如,一个主定时器的时钟可以被用作一个从定时器的预分频器 011:比较脉冲 – 在发生一次捕获或一次比较成功时,当要设置CC1IF标志时(即使它已经为高),触发输出送出一个正脉冲(TRGO) 100:比较 – OC1REF信号被用于作为触发输出(TRGO) 101:比较 – OC2REF信号被用于作为触发输出(TRGO) 110:比较 – OC3REF信号被用于作为触发输出(TRGO) 111:比较 – OC4REF信号被用于作为触发输出(TRGO)
3位:CCDS:捕获/比较的DMA选择,定义:0(当发生CCx事件时,送出CCx的DMA请求),1(当发生更新事件时,送出CCx的DMA请求)2位:CCUS:捕获/比较控制更新选择,定义:0(如果捕获/比较控制位是预装载的(CCPC=1),只能通过设置COM位更新它们) 1(如果捕获/比较控制位是预装载的(CCPC=1),可以通过设置COM位或TRGI上的一个上升沿更新它们),注:该位只对具有互补输出的通道起作用0位:CCPC捕获/比较预装载控制位,定义:0(CCxE,CCxNE和OCxM位不是预装载的),1(CCxE,CCxNE和OCxM位是预装载的;设置该位后,它们只在设置了COM位后被更新TIMx_SMCR(TIM1和TIM8从模式控制寄存器)ETPECEETPS[1:0]ETF[3:0]MSMTS[2:0]保留SMS[2:0]15位:ETP外部触发极性,定义:0(ETR不反相,高电平或上升沿有效),1(ETR被反相,低电平或下降沿有效)14位:ECE外部时钟使能位,定义:0(禁止外部时钟模式2),1(使能外部时钟模式2,计数器由ETRF信号上的任意有效边沿驱动) 注1:设置ECE位与选择外部时钟模式1并将TRGI连到ETRF(SMS=111和TS=111)具有相同功效 注2:下述从模式可以与外部时钟模式2同时使用:复位模式,门控模式和触发模式;但是,这时TRGI不能连到ETRF(TS位不能是’111’)。 注3:外部时钟模式1和外部时钟模式2同时被使能时,外部时钟的输入是ETRF13位:ETPS[1:0]:外部触发预分频,外部触发信号ETRP的频率必须最多是TIMxCLK频率的1/4。当输入较快的外部时钟时,可以使用预分频降低ETRP的频率 定义:00(关闭预分频),01(ETRP/2),10(ETRP/4),11(ETRP/8)11-8位:ETF外部触发滤波,这些位定义了对ETRP信号采样的频率和对ETRP数字滤波的带宽。实际上,数字滤波器是一个事件计数器,它记录到N个事件后 会产生一个输出的跳变,定义:0000(无滤波器,以fDTS采样)0001(采样频率fSAMPLING=fCK_INT,N=2)0010(采样频率fSAMPLING=fCK_INT,N=4) 0011(采样频率fSAMPLING=fCK_INT,N=8)0100(采样频率fSAMPLING=fDTS/2,N=6)0101(采样频率fSAMPLING=fDTS/2,N=8) 0110(采样频率fSAMPLING=fDTS/4,N=6)0111(采样频率fSAMPLING=fDTS/4,N=8)1000(采样频率fSAMPLING=fDTS/8,N=6) 1001(采样频率fSAMPLING=fDTS/8,N=8)1010(采样频率fSAMPLING=fDTS/16,N=5)1011:采样频率fSAMPLING=fDTS/16,N=6 1100(采样频率fSAMPLING=fDTS/16,N=8)1101(采样频率fSAMPLING=fDTS/32,N=5)1110(采样频率fSAMPLING=fDTS/32,N=6) 1111(采样频率fSAMPLING=fDTS/32,N=8)7位:MSM主/从模式,定义:0(无作用),1:触发输入(TRGI)上的事件被延迟了,以允许在当前定时器(通过TRGO)与它的从定时器间的完美同步。 这对要求把几个定时器同步到一个单一的外部事件时是非常有用的6-4位:TS[2:0]触发选择,这3位选择用于同步计数器的触发输入,定义:000(内部触发0(ITR0),001(内部触发1(ITR1),010(内部触发2(ITR2), 011(内部触发3(ITR3),100(TI1的边沿检测器(TI1F_ED),101(滤波后的定时器输入1(TI1FP1),110(滤波后的定时器输入2(TI2FP2),111(外部触发输入(ETRF)2-0位:SMS[2:0]从模式选择,当选择了外部信号,触发信号(TRGI)的有效边沿与选中的外部输入极性相关,定义 000:关闭从模式 – 如果CEN=1,则预分频器直接由内部时钟驱动。001:编码器模式1 – 根据TI1FP1的电平,计数器在TI2FP2的边沿向上/下计数。 010:编码器模式2 – 根据TI2FP2的电平,计数器在TI1FP1的边沿向上/下计数。 011:编码器模式3-根据另一个信号的输入电平,计数器在TI1FP1和TI2FP2的边沿向上/下计数。 100:复位模式 – 选中的触发输入(TRGI)的上升沿重新初始化计数器,并且产生一个更新寄存器的信号。 101:门控模式 – 当触发输入(TRGI)为高时,计数器的时钟开启。一旦触发输入变为低,则计数器停止(但不复位)。计数器的启动和停止都是受控的。 110:触发模式 – 计数器在触发输入TRGI的上升沿启动(但不复位),只有计数器的启动是受控的。 111:外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器。注:如果TI1F_EN被选为触发输入(TS=100)时,不要使用门控模式。这是因为,TI1F_ED在每次TI1F变化时输出一个脉冲,然而门控模式是要检查触发输入的电平。TIMx_DIER(TIM1和TIM8 DMA/中断使能寄存器)保留TDECOMDECC4DECC3DECC2DECC1DEUDEBIETIECOMIECC4IECC3IECC2IECC1IE14位:TDE:允许触发DMA请求,定义:0(禁止),1(允许)13位:COMDE:允许COM的DMA请求,定义:0(禁止),1(允许)12,11,10,9位:CC(4-1)DE,允许捕获/比较(4-1)的DMA请求,定义:0(禁止),1(允许)8位:UDE允许更新的DMA请求,定义:0(禁止),1(允许)7位:BIE允许刹车中断,定义:0(禁止),1(允许)
6位:TIE:触发中断使能,定义:0(禁止),1(允许)5位:COMIE允许COM中断,定义:0(禁止),1(允许)4,3,2,1位:CC(4-1)IE允许捕获/比较(4-1)中断,定义:0(禁止),1(允许)0位:UIE允许更新中断,定义:0(禁止),1(允许)TIMx_SR(TIM1和TIM8状态寄存器)保留CC4OFCC3OFCC2OFCC1OF保留BIFTIFCOMIFCC4IFCC3IFCC2IFCC1IF12,11,10,9位:CC(4-1)OF捕获/比较(4-1)重复捕获标记,仅当相应的通道被配置为输入捕获时,该标记可由硬件置1。写0可清除该位, 定义:0(无重复捕获),1(计数器的值被捕获到TIMx_CCR1寄存器时,CC1IF的状态已经为’1)7位:BIF刹车中断标记,一旦刹车输入有效,由硬件对该位置’1’如果刹车输入无效,则该位可由软件清’0’.定义:0(无刹车事件),1(刹车检测到有效电平6位:TIF:触发器中断标记,当发生触发事件(当从模式控制器处于除门控模式外的其它模式时,在TRGI输入端检测到有效边沿,或门控模式下的任一边沿) 时由硬件对该位置’1’。它由软件清’0’。定义:0(无触发事件),1(触发中断等待响应)5位:COMIFCOM中断标记,一旦产生COM事件(当捕获/比较控制位:CCxE、CCxNE、OCxM已被更新)该位由硬件置’1’。它由软件清’0’。定义:0(无事件),1(有)4,3,2,1位:CC(4-1)IF捕获/比较(4-1)中断标记,如果通道CC1配置为输出模式,当计数器值与比较值匹配时该位由硬件置1,但在中心对称模式下除外。 (参考TIMx_CR1寄存器的CMS位)。它由软件清’0’。定义:0(无匹配发生),1(TIMx_CNT的值与TIMx_CCR1的值匹配) 当TIMx_CCR1的内容大于TIMx_APR的内容时,在向上或向上/下计数模式时计数器溢出,或向下计数模式时的计数器下溢条件下,CC1IF位变高 如果通道CC1配置为输入模式,当捕获事件发生时该位由硬件置’1’,它由软件清’0’或通过读TIMx_CCR1清’0’。 定义:0(无输入捕获产生),1(计数器值已被捕获(拷贝)至TIMx_CCR1(在IC1上检测到与所选极性相同的边沿))0位:UIF:更新中断标记,当产生更新事件时该位由硬件置’1’。它由软件清’0’定义:0(无更新事件产生),1(更新中断等待响应。当寄存器被更新时该位 若TIMx_CR1寄存器的UDIS=0,当重复计数器数值上溢或下溢时(重复计数器=0时产生更新事件)。 若TIMx_CR1寄存器的URS=0、UDIS=0,当设置TIMx_EGR寄存器的UG=1时产生更新事件,通过软件对计数器CNT重新初始化时 若TIMx_CR1寄存器的URS=0、UDIS=0,当计数器CNT被触发事件重新初始化时。(参考13.4.3: TIM1和TIM8从模式控制寄存器(TIMx_SMCR))TIMx_EGR(TIM1和TIM8事件产生寄存器)保留BGTGCOMGCC4GCC3GCC2GCC1G7位:BG产生刹车事件(软件置1,硬件清0),定义:0(无动作),1(产生一个刹车事件。此时MOE=0、BIF=1,若开启对应的中断和DMA,则产生相应的中断和DM6位:TG产生触发事件(软件置1,硬件清0),定义:0(无动作),1(TIMx_SR寄存器的TIF=1,若开启对应的中断和DMA,则产生相应的中断和DMA)5位:COMG捕获/比较事件,产生控制更新(软件置1,硬件清0),定义:0(无动作),1(当CCPC=1,允许更新CCxE、CCxNE、OCxM位)注:该位只对拥有互补输出的通道有4,3,2,1位:CC(4-1)G:产生捕获/比较(4-1)事件(软件置1,硬件清0),定义:0(无动作),1(在通道CC1上产生一个捕获/比较事件) 若通道CC1配置为输出,设置CC1IF=1,若开启对应的中断和DMA,则产生相应的中断和DMA 若通道CC1配置为输入,当前的计数器值被捕获至TIMx_CCR1寄存器;设置CC1IF=1,若开启对应的中断和DMA,则产生相应的中断和DMA。若CC1IF已经为 则设置CC1OF=10位:UG产生更新事件(软件置1,硬件清0),定义:0(无动作),1(重新初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清’0’ (但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清’0’;若DIR=1(向下计数)则计数器取TIMx_ARR的值)TIMx_ARR(TIM1和TIM8自动重装载寄存器)ARR[15:0]15-0位:ARR[15:0]自动重装载的值,ARR包含了将要传送至实际的自动重装载寄存器的数值,当自动重装载的值为空时,计数器不工作TIMx_CCMR1(TIM1和TIM8捕获/比较模式寄存器1)OC2CEOC2M[2:0]OC2PEOC2FEOC1CEOC1M[2:0]OC1PEOC1FEIC2F[3:0]IC2PSC[1:0]CC2S[1:0]IC1F[3:0]IC1PSC[1:0]CC1S[1
15OC4CE13OC4M[2:0]IC4F[3:0]14TIMx_CCMR2(TIM1和TIM8捕获/比较模式寄存器2)OC4PEOC4FEOC3CEOC3M[2:0]IC4PSC[1:0]CC4S[1:0]IC3F[3:0]输出比较和输入捕获功能不同,在寄存器中的设置也不同。输出比较模式43OC3PEOC3FEIC3PSC[1:0]21CC3S[115位:OC2CE:输出比较2清0使能14-12位:OC2M[2:0]:输出比较2模式11位:OC2PE:输出比较2预装载使能10位:OC2FE:输出比较2快速使能9-8位:CC2S[1:0]:捕获/比较2选择,该位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC2通道被配置为输出) 01(CC2通道被配置为输入,IC2映射在TI 10(CC2通道被配置为输入,IC2映射在TI1上) 11(CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时。 (由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=0)才是可写的。9-8位:CC4S[1:0]:捕获/比较4选择;该位定义通道的方向(输入/输出);及输入脚的选择,定义:00(CC4通道被配置为输出)01(CC4通道被配置为输入,IC4映射在TI4上 10(CC4通道被配置为输入,IC4映射在TI3上) 11(CC4通道被配置为输入,IC4映射在TRC上。此模式仅工作在内部触发器输入被选中时。 (由TIMx_SMCR寄存器的TS位选择),注:CC4S仅在通道关闭时(TIMx_CCER寄存器的CC4E=0)才是可写的。7位:OC1CE:输出比较1清’0’使能,定义:0(OC1REF 不受ETRF输入的影响),1(一旦检测到ETRF输入高电平,清除OC1REF=0)6-4位:OC1M[2:0]输出比较1模式,该3位定义了输出参考信号OC1REF的动作,而OC1REF决定了OC1、OC1N的值。OC1REF是高电平有效,而OC1、OC1N 的有效电平取决于CC1P、CC1NP位,定义:000(冻结。输出比较寄存器TIMx_CCR1与计数器TIMx_CNT间的比较对OC1REF不起作用) 001(匹配时设置通道1为有效电平。当计数器TIMx_CNT的值与捕获/比较寄存器1 (TIMx_CCR1)相同时,强制OC1REF为高),010(强制OC1REF为低) 011(翻转。当TIMx_CCR1=TIMx_CNT时,翻转OC1REF的电平)100(强制为无效电平。强制OC1REF为低)101(强制OC1REF为高) 110:PWM模式1- 在向上计数时,一旦TIMx_CNT
15-12位:输入捕获2滤波器11-10位:CC2S[1:0]输入/捕获2预分频器9-8位:CC2S[1:0]捕获/比较2选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC2通道被配置为输出)01(CC2通道被配置为输入, IC2映射在TI2上),10(CC2通道被配置为输入,IC2映射在TI1上),11(CC2通道被配置为输入,IC2映射在TRC上),此模式仅工作在内部触发器输入被选中时 (由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=0)才是可写的。9-8位:CC4S[1:0]捕获/比较4选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC4通道被配置为输出)01(CC4通道被配置为输入, IC4映射在TI4上),10(CC4通道被配置为输入,IC4映射在TI3上),11(CC4通道被配置为输入,IC4映射在TRC上),此模式仅工作在内部触发器输入被选中时 (由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC4E=0)才是可写的。7-4位:IC1F[3:0]:输入捕获1滤波器,这几位定义了TI1输入的采样频率及数字滤波器长度,数字滤波器由一个事件计数器组成,记录到N个事件后会产生一个输出的跳 定义:0000(无滤波器,以fDTS采样)0010(采样频率fSAMPLING=fCK_INT,N=4)0011(采样频率fSAMPLING=fCK_INT,N=8)0100(fSAMPLING=fDTS/2,N=6) 0101(fSAMPLING=fDTS/2,N=8),0110(fSAMPLING=fDTS/4,N=6),0111(fSAMPLING=fDTS/4,N=8),1000(fSAMPLING=fDTS/8,N=6) 1001(fSAMPLING=fDTS/8,N=8),1010(fSAMPLING=fDTS/16,N=5),1011(fSAMPLING=fDTS/16,N=6),1100(fSAMPLING=fDTS/16,N=8) 1101(fSAMPLING=fDTS/32,N=5),0110(fSAMPLING=fDTS/4,N=6),1110(fSAMPLING=fDTS/32,N=6),0111(fSAMPLING=fDTS/4,N=8) 1111(fSAMPLING=fDTS/32,N=8)3-2位:IC1PSC[1:0]输入/捕获1预分频器,这2位定义了CC1输入(IC1)的预分频系数,一旦CC1E=0(TIMx_CCER寄存器中),则预分频器复位。 00(无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获),01(每2个事件触发一次捕获),10(每4个事件触发一次捕获),11(每8个事件触发一次捕1-0位:CC1S[1:0]捕获/比较1选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC1通道被配置为输出),01(CC1通道被配置为输入,IC1映射在TI 10(CC1通道被配置为输入,IC1映射在TI2上),11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时 (由TIMx_SMCR寄存器的TS位选择)。注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=0)才是可写的。1-0位:CC3S[1:0]捕获/比较3选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC3通道被配置为输出),01(CC3通道被配置为输入,IC3映射在TI 10(CC3通道被配置为输入,IC3映射在TI4上),11:CC3通道被配置为输入,IC3映射在TRC上。此模式仅工作在内部触发器输入被选中时 (由TIMx_SMCR寄存器的TS位选择)。注:CC3S仅在通道关闭时(TIMx_CCER寄存器的CC3E=0)才是可写的。TIMx_CCER(TIM1和TIM8捕获/比较使能寄存器)CC4PCC4ECC3NPCC3NECC3PCC3ECC2NPCC2NECC2PCC2ECC1NPCC1NECC1P11,7,3位:CC(3-1)NP:输入/捕获3互补输出极性,定义:0(OC1N高电平有效),1(OC1N低电平有效) 注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为3或2且CC1S=00(通道配置为输出)则该位不能被修改10,6,2位:CC3(3-1)NE:输入/捕获3互补输出使能,定义:0(关闭- OC1N禁止输出,因此OC1N的电平依赖于MOE、OSSI、OSSR、OIS1、OIS1N和CC1E位的值) 1(开启- OC1N信号输出到对应的输出引脚,其输出电平依赖于MOE、OSSI、OSSR、OIS1、OIS1N和CC1E位的值。13,9,5,1位:CC(4-1)P:输入/捕获3输出极性,定义:CC1通道配置为输出-0(OC1高电平有效),1(OC1低电平有效) CC1通道配置为输入:该位选择是IC1还是IC1的反相信号作为触发或捕获信号,0:不反相:捕获发生在IC1的上升沿;当用作外部触发器时,IC1不反相。 1(相反,捕获发生在IC1的下降沿)注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为3或2,则该位不能被修改128,4,0位:CC(4-1)E:输入/捕获3输出使能,定义:CC1通道配置为输出- 0(关闭- OC1禁止输出,因此OC1的输出电平依赖于MOE、OSSI、OSSR、OIS1、OIS1N和CC1NE位的值),1(开启) CC1通道配置为输入,该位决定了计数器的值是否能捕获入TIMx_CCR1寄存器。0(捕获禁止),1(捕获使能)表75 带刹车功能的互补输出通道OCx和OCxN的控制位(P245)TIMx_CNT(TIM1和TIM8计数器)CNT[15:0]0-15位:CNT[15:0]计数器的值TIMx_PSC(TIM1和TIM8预分频器)
PSC[15:0]0-15位:PSC[15:0]预分频器的值,计数器的时钟频率(CK_CNT)等于fCK_PSC/( PSC[15:0]+1)。 PSC包含了每次当更新事件产生时,装入当前预分频器寄存器的值;更新事件包括计数器被TIM_EGR的UG位清’0’或被工作在复位模式的从控制器清’0’TIMx_RCR(TIM1和TIM8重复计数寄存器)保留REP[7:0]7-0位:开启了预装载功能后,这些位允许用户设置比较寄存器的更新速率(即周期性地从预装载寄存器传输到当前寄存器);如果允许产生更新中断,则会同时影响 更新中断的速率。每次向下计数器REP_CNT达到0,会产生一个更新事件并且计数器REP_CNT重新从REP值开始计数。由于REP_CNT只有在周期更新事件U_RC 发生时才重载REP值,因此对TIMx_RCR寄存器写入的新值只在下次周期更新事件发生时才起作用。 这意味着在PWM模式中,(REP+1)对应着:- 在边沿对齐模式下,PWM周期的数目;- 在中心对称模式下,PWM半周期的数目;TIMx_CCR1(TIM1和TIM8捕获/比较寄存器1)CCR1[15:0]TIMx_CCR2(TIM1和TIM8捕获/比较寄存器2)CCR2[15:0]TIMx_CCR3(TIM1和TIM8捕获/比较寄存器3)CCR3[15:0]TIMx_CCR4(TIM1和TIM8捕获/比较寄存器4)CCR4[15:0]15-0位:CCR1[15:0]: 捕获/比较通道1的值,若CC1通道配置为输出,CCR1包含了装入当前捕获/比较1寄存器的值(预装载值) 如果在TIMx_CCMR1寄存器(OC1PE位)中未选择预装载功能,写入的数值会立即传输至当前寄存器中。否则只有当更新事件发生时, 此预装载值才传输至当前捕获/比较1寄存器中。当前捕获/比较寄存器参与同计数器TIMx_CNT的比较,并在OC1端口上产生输出信号。 若CC1通道配置为输入,CCR1包含了由上一次输入捕获1事件(IC1)传输的计数器值。TIMx_BDTR(TIM1和TIM8刹车和死区寄存器)MOEAOEBKPBKEOSSROSSILOCK[1:0]DTG[7:0]注释: 根据锁定设置,AOE、BKP、BKE、OSSI、OSSR和DTG[7:0]位均可被写保护,有必要在第一次写入TIMx_BDTR寄存器时对它们进行配置15位:MOE主输出使能,一旦刹车输入有效,该位被硬件异步清’0’。根据AOE位的设置值,该位可以由软件清’0’或被自动置1。它仅对配置为输出的通道有效。 定义:0(禁止OC和OCN输出或强制为空闲状态),1(如果设置了相应的使能位(TIMx_CCER寄存器的CCxE、CCxNE位),则开启OC和OCN输出。)14位:AOE自动输出使能,定义:0(MOE只能被软件置’1’),1(MOE能被软件置’1’或在下一个更新事件被自动置’1’(如果刹车输入无效) 注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为’1’,则该位不能被修改13位:BKP刹车输入极性,定义:0(刹车输入低电平有效),1(刹车输入高电平有效),注:任何对该位的写操作都需要一个APB时钟的延迟以后才能起作用 注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为’1’,则该位不能被修改。12位:BKE刹车功能使能,定义:0(禁止刹车输入(BRK及CCS时钟失效事件),1(开启),注:任何对该位的写操作都需要一个APB时钟的延迟以后才能起作用 注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为’1’,则该位不能被修改。11位:OSSR运行模式下“关闭状态”选择,该位用于当MOE=1且通道为互补输出时。没有互补输出的定时器中不存在OSSR位,定义: 0(当定时器不工作时,禁止OC/OCN输出(OC/OCN使能输出信号=0)) 1(当定时器不工作时,一旦CCxE=1或CCxNE=1,首先开启OC/OCN并输出无效电平,然后置OC/OCN使能输出信号=1) 注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为2,则该位不能被修改。
10位:OSSI空闲模式下“关闭状态”选择,该位用于当MOE=0且通道设为输出时,注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为2,则该位不能被修改。 定义:0(当定时器不工作时,禁止OC/OCN输出(OC/OCN使能输出信号=0); 1(当定时器不工作时,一旦CCxE=1或CCxNE=1,OC/OCN首先输出其空闲电平,然后OC/OCN使能输出信号=1。)9-8位:LOOK[1:0]锁定设置,该位为防止软件错误而提供写保护,注:在系统复位后,只能写一次LOCK位,一旦写入TIMx_BDTR寄存器,则其内容冻结直至复位。 定义:00(锁定关闭,寄存器无写保护),01(锁定级别1,不能写入TIMx_BDTR寄存器的DTG、BKE、BKP、AOE位和TIMx_CR2寄存器的OISx/OISxN位) 10(锁定级别2,不能写入级别1中的各位,也不能写入CC极性位(一旦相关通道通过CCxS位设为输出,CC极性位是TIMx_CCER寄存器的CCxP/CCNxP位)OSSR/OSSI位 11:锁定级别3,不能写入锁定级别2中的各位,也不能写入CC控制位(一旦相关通道通过CCxS位设为输出,CC控制位是TIMx_CCMRx寄存器的OCxM/OCxPE位);7-0位:死区发生器设置,控制死区事件.DTG[7:5]=0xx => DT=DTG[7:0] × Tdtg,Tdtg = TDTS;DTG[7:5]=10x => DT=(64+DTG[5:0]) × Tdtg,Tdtg=2×TDTS; DTG[7:5]=110 => DT=(32+DTG[4:0]) × Tdtg,Tdtg = 8 × TDTS;DTG[7:5]=111 => DT=(32+DTG[4:0])× Tdtg,Tdtg = 16 × TDTS; 注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为1、2或3,则不能修改这些位。设DT表示其持续时间TIMx_DCR(TIM1和TIM8 DMA控制寄存器)保留DBL[4:0]保留DBA[4:0]12-8位:DBL[4:0]DMA连续传送长度,这些位定义了DMA在连续模式下的传送长度(当对TIMx_DMAR寄存器进行读或写时,定时器则进行一次连续传送), 即:定义传输的次数,传输可以是半字(双字节)或字节:00000:1次传输 00001:2次传输 ...... 00010:3次传输 ...... 10001:18次传输4-0位:DBA[4:0]DMA基地址,这些位定义了DMA在连续模式下的基地址(当对TIMx_DMAR寄存器进行读或写时),DBA定义为从TIMx_CR1寄存器所在地址开始的偏移量 00000:TIMx_CR1, 00001:TIMx_CR2, 00010:TIMx_SMCR, ......TIMx_DMAR(TIM1和TIM8连续模式的DMA地址)DMAB[15:0]15-0位:DMAB[15:0]DMA连续传送寄存器,对TIMx_DMAR寄存器的读或写会导致对以下地址所在寄存器的存取操作,TIMx_CR1地址 + DBA + DMA索引,其中:
"TIMx_CR1地址"是控制寄存器1(TIMx_CR1)所在的地址:"DBA"是TIMx_DCR寄存器中定义的基地址:"DMA索引"是由DMA自动控制的偏移量,
它取决于TIMx_DCR寄存器中定义的DBL。通用定时器相关寄存器TIMx_CR1(控制寄存器1)保留CKD[1:0]ARPECMS[1:0]DIROPMURSUDIS9-8位:CKD[1:0]时钟分频因子,定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。 定义:00(tDTS = tCK_INT),01(tDTS = 2 x tCK_INT),10(tDTS = 4 x tCK_INT)11:保留7位:ARPE:自动重装载预装载允许位,定义:0(TIMx_ARR寄存器没有缓冲),1(TIMx_ARR寄存器被装入缓冲器)6-5位:CMS[1:0]选择中央对齐模式,定义:00:边沿对齐模式。计数器依据方向位(DIR)向上或向下计数。 01(中央对齐模式1。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器中CCxS=00)的输出比较中断标志位,只在计数器向下计数时被设 10(中央对齐模式2。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器中CCxS=00)的输出比较中断标志位,只在计数器向上计数时被设 11(中央对齐模式3,计数器交替地向上和向下计数,配置为输出的通道(TIMx_CCMRx寄存器中CCxS=00)的输出比较中断标志位,在计数器向上和向下计数时均被设 注:在计数器开启时(CEN=1),不允许从边沿对齐模式转换到中央对齐模式。4位:DIR:方向,定义:0(计数器向上计数),1(计数器向下计数),注:当计数器配置为中央对齐模式或编码器模式时,该位为只读3位:OPM:单脉冲模式,定义:0(在发生更新事件时,计数器不停止),1(在发生下一次更新事件(清除CEN位)时,计数器停止)2位:URS:更新请求源,软件通过该位选择UEV事件的源,0(如果使能更新中断或DMA请求,则计数器溢出/下溢-设置UG位-从模式控制器产生的更新会产生) 1:如果使能了更新中断或DMA请求,则只有计数器溢出/下溢才产生更新中断或DMA请求1位:UDIS禁止更新,软件通过该位允许/禁止UEV事件的产生,0:允许UEV。更新(UEV)事件由计数器溢出/下溢,设置UG位,从模式控制器产生的更新,事件产生 具有缓存的寄存器被装入它们的预装载值 1:禁止UEV。不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。如果设置了UG位或从模式控制器发出了一个硬件复位, 则计数器和预分频器被重新初始化。0位:CEN使能计数器,定义:0(禁止计数器),1(使能计数器)注:在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。 触发模式可以自动地通过硬件设置CEN位。在单脉冲模式下,当发生更新事件时,CEN被自动清除。TIMx_CR2(控制寄存器2)保留TI1SMMS[2:0]CCDS保留7位:TI1S-TI1选择,定义:0(TIMx_CH1引脚连到TI1输入),1(TIMx_CH1、TIMx_CH2和TIMx_CH3引脚经异或后连到TI1输入)6-4位:MMS主模式选择,这3位用于选择在主模式下送到从定时器的同步信息(TRGO)定义: 000:复位 – TIMx_EGR寄存器的UG位被用于作为触发输出(TRGO)。如果是触发输入产生的复位(从模式控制器处于复位模式), 则TRGO上的信号相对实际的复位会有一个延迟 001:使能 – 计数器使能信号CNT_EN被用于作为触发输出(TRGO)。有时需要在同一时间启动多个定时器或控制在一段时间内使能从定时器。 计数器使能信号是通过CEN控制位和门控模式下的触发输入信号的逻辑或产生。 当计数器使能信号受控于触发输入时,TRGO上会有一个延迟,除非选择了主/从模式(见TIMx_SMCR寄存器中MSM位的描述)。 010:更新 – 更新事件被选为触发输入(TRGO)。例如,一个主定时器的时钟可以被用作一个从定时器的预分频器 011:比较脉冲 – 在发生一次捕获或一次比较成功时,当要设置CC1IF标志时(即使它已经为高),触发输出送出一个正脉冲(TRGO) 100:比较 – OC1REF信号被用于作为触发输出(TRGO) 101:比较 – OC2REF信号被用于作为触发输出(TRGO) 110:比较 – OC3REF信号被用于作为触发输出(TRGO) 111:比较 – OC4REF信号被用于作为触发输出(TRGO)3位:CCDS:捕获/比较的DMA选择,定义:0(当发生CCx事件时,送出CCx的DMA请求),1(当发生更新事件时,送出CCx的DMA请求)TIMx_SMCR(从模式控制寄存器)ETPECEETPS[1:0]ETP[3:0]MSMTS[2:0]保留SMS[2:0]
15位:ETP:外部触发极性,该位选择是用ETR还是ETR的反相来作为触发操作,定义:0(ETR不反相,高电平或上升沿有效),1(ETR被反相,低电平或下降沿有效14位:ECE:外部时钟使能位,该位启用外部时钟模式2,定义:0(禁止外部时钟模式2)1(使能外部时钟模式2。计数器由ETRF信号上的任意有效边沿驱动 注1:设置ECE位与选择外部时钟模式1并将TRGI连到ETRF(SMS=111和TS=111)具有相同功效。 注2:下述从模式可以与外部时钟模式2同时使用:复位模式、门控模式和触发模式;但是,这时TRGI不能连到ETRF(TS位不能是’111’)。 注3:外部时钟模式1和外部时钟模式2同时被使能时,外部时钟的输入是ETRF13-12位:ETPS外部触发预分频,外部触发信号ETRP的频率必须最多是CK_INT频率的1/4。当输入较快的外部时钟时,可以使用预分频降低ETRP的频率 定义:00(关闭预分频),01(ETRP频率除以2),10(ETRP频率除以4),11(ETRP频率除以8)11-8位:ETF外部触发滤波,这些位定义了对ETRP信号采样的频率和对ETRP数字滤波的带宽。实际上,数字滤波器是一个事件计数器,它记录到N个事件后 会产生一个输出的跳变,定义:0000(无滤波器,以fDTS采样)0001(采样频率fSAMPLING=fCK_INT,N=2)0010(采样频率fSAMPLING=fCK_INT,N=4) 0011(采样频率fSAMPLING=fCK_INT,N=8)0100(采样频率fSAMPLING=fDTS/2,N=6)0101(采样频率fSAMPLING=fDTS/2,N=8) 0110(采样频率fSAMPLING=fDTS/4,N=6)0111(采样频率fSAMPLING=fDTS/4,N=8)1000(采样频率fSAMPLING=fDTS/8,N=6) 1001(采样频率fSAMPLING=fDTS/8,N=8)1010(采样频率fSAMPLING=fDTS/16,N=5)1011:采样频率fSAMPLING=fDTS/16,N=6 1100(采样频率fSAMPLING=fDTS/16,N=8)1101(采样频率fSAMPLING=fDTS/32,N=5)1110(采样频率fSAMPLING=fDTS/32,N=6) 1111(采样频率fSAMPLING=fDTS/32,N=8)7位:MSM主/从模式,定义:0(无作用),1(触发输入(TRGI)上的事件被延迟了,以允许在当前定时器(通过TRGO)与它的从定时器间的完美同步。 这对要求把几个定时器同步到一个单一的外部事件时是非常有用的)6-4位:TS[2:0]:触发选择,这3位选择用于同步计数器的触发输入,定义:000(内部触发0(ITR0),TIM1),001(内部触发1(ITR1),TIM2)010(内部触发2(ITR2),TIM3 011(内部触发3(ITR3),TIM4)100(TI1的边沿检测器(TI1F_ED))101(滤波后的定时器输入1(TI1FP1)110(滤波后的定时器输入2(TI2FP2) 111(外部触发输入(ETRF)注:这些位只能在未用到(如SMS=000)时被改变,以避免在改变时产生错误的边沿检测。关于定时器细节见P285表782-0位:SMS[2:0]从模式选择,当选择了外部信号,触发信号(TRGI)的有效边沿与选中的外部输入极性相关,定义 000:关闭从模式 – 如果CEN=1,则预分频器直接由内部时钟驱动。001:编码器模式1 – 根据TI1FP1的电平,计数器在TI2FP2的边沿向上/下计数。 010:编码器模式2 – 根据TI2FP2的电平,计数器在TI1FP1的边沿向上/下计数。 011:编码器模式3 – 根据另一个信号的输入电平,计数器在TI1FP1和TI2FP2的边沿向上/下计数。 100:复位模式 – 选中的触发输入(TRGI)的上升沿重新初始化计数器,并且产生一个更新寄存器的信号。 101:门控模式 – 当触发输入(TRGI)为高时,计数器的时钟开启。一旦触发输入变为低,则计数器停止(但不复位)。计数器的启动和停止都是受控的。 110:触发模式 – 计数器在触发输入TRGI的上升沿启动(但不复位),只有计数器的启动是受控的。 111:外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器。注:如果TI1F_EN被选为触发输入(TS=100)时,不要使用门控模式。这是因为,TI1F_ED在每次TI1F变化时输出一个脉冲,然而门控模式是要检查触发输入的电平。TIMx_DIER(DMA/中断使能寄存器)保留TDE保留CC4DECC3DECC2DECC1DEUDE保留TIE保留CC4IECC3IECC2IECC1IE14位:TDE:允许触发DMA请求,定义:0(禁止),1(允许)12位:CC4DE:允许捕获/比较4的DMA请求,定义:0(禁止),1(允许)11位:CC3DE:允许捕获/比较3的DMA请求,定义:0(禁止),1(允许)10位:CC2DE:允许捕获/比较2的DMA请求,定义:0(禁止),1(允许)9位:CC1DE:允许捕获/比较1的DMA请求,定义:0(禁止),1(允许)8位:UDE:允许更新的DMA请求,定义:0(禁止),1(允许)6位:TIE:触发中断使能,定义:0(禁止),1(允许)4位:CC4IE:允许捕获/比较4中断,定义:0(禁止),1(允许)3位:CC3IE:允许捕获/比较3中断,定义:0(禁止),1(允许)2位:CC2IE:允许捕获/比较2中断,定义:0(禁止),1(允许)1位:CC1IE:允许捕获/比较1中断,定义:0(禁止),1(允许)
0位:UIE允许更新中断,定义:0(禁止),1(允许)TIMx_SR(状态寄存器)保留CC4OFCC3OFCC2OFCC1OF保留TIF保留CC4IFCC3IFCC2IFCC1IF9位:CC(1-4)OF:捕获/比较1重复捕获标记,仅当相应的通道被配置为输入捕获时,该标记可由硬件置’1’。写’0’可清除该位,定义:0(无重复捕获产生) 1:当计数器的值被捕获到TIMx_CCR1寄存器时,CC1IF的状态已经为’1’。7位:BIF刹车标记中断,一旦刹车输入有效,由硬件对该位置’1’。如果刹车输入无效,则该位可由软件清’0。定义:0(无刹车),11(有刹车)6位:TIF触发器中断标记,当发生触发事件(当从模式控制器处于除门控模式外的其它模式时,在TRGI输入端检测到有效边沿,或门控模式下的任一边沿) 时由硬件对该位置’1’。它由软件清’0’,定义:0(无触发事件),1(触发器中断等待响应)4,3,2,1位:CC(4-1)IF捕获/比较(4-1)中断标记,如果通道CC1配置为输出模式(软件清0,硬件置1(在中心对称下除外),定义:0(无匹配),1(TIMx_CNT与TIMx_CCR1匹 如果通道CC1配置为输入模式:(硬件置1,软件清0,或通过读TIMx_CCR1清’0’),定义:0(无输入捕获产生), 1(计数器值已被捕获(拷贝)至TIMx_CCR1(在IC1上检测到与所选极性相同的边沿)。0位:UIF更新中断标记(硬件置1,软件清0)定义:0(无更新事件)1(更新中断等待响应。当寄存器被更新时该位由硬件置’1’) − 若TIMx_CR1寄存器的UDIS=0、URS=0,当TIMx_EGR寄存器的UG=1时产生更新事件(软件对计数器CNT重新初始化); − 若TIMx_CR1寄存器的UDIS=0、URS=0,当计数器CNT被触发事件重初始化时产生更新事件。(参考同步控制寄存器的说明)TIMx_EGR(事件产生寄存器)保留TG保留CC4GCC3GCC2GCC1G6位:TG产生触发事件(软件置1,硬件清0),定义:0(无动作),1(TIMx_SR寄存器的TIF=1,若开启对应的中断和DMA,则产生相应的中断和DMA)5位:COMG捕获/比较事件,产生控制更新(软件置1,硬件清0),定义:0(无动作),1(当CCPC=1,允许更新CCxE、CCxNE、OCxM位)注:该位只对拥有互补输出的通道有4,3,2,1位:CC(4-1)G:产生捕获/比较(4-1)事件(软件置1,硬件清0),定义:0(无动作),1(在通道CC1上产生一个捕获/比较事件) 若通道CC1配置为输出,设置CC1IF=1,若开启对应的中断和DMA,则产生相应的中断和DMA 若通道CC1配置为输入,当前的计数器值被捕获至TIMx_CCR1寄存器;设置CC1IF=1,若开启对应的中断和DMA,则产生相应的中断和DMA。若CC1IF已经为 则设置CC1OF=10位:UG产生更新事件(软件置1,硬件清0),定义:0(无动作),1(重新初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清’0’ (但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清’0’;若DIR=1(向下计数)则计数器取TIMx_ARR的值)TIMx_CCMR1(捕获/比较模式寄存器1)OC2CEOC2M[2:0]OC2PEOC2FEOC1CEOC1M[2:0]OC1PEOC1FEIC2F[3:0]IC2PSC[1:0]CC2S[1:0]IC1F[3:0]IC1PSC[1:0]CC1S[1TIMx_CCMR2(捕获/比较模式寄存器2)OC4CEOC4M[2:0]OC4PEOC4FEOC3CEOC3M[2:0]OC3PEOC3FEIC4F[3:0]IC4PSC[1:0]CC4S[1:0]IC3F[3:0]IC3PSC[1:0]CC3S[1输出比较和输入捕获功能不同,在寄存器中的设置也不同。输出比较模式15位:OC2CE:输出比较2清0使能14-12位:OC2M[2:0]:输出比较2模式11位:OC2PE:输出比较2预装载使能10位:OC2FE:输出比较2快速使能9-8位:CC2S[1:0]:捕获/比较2选择,该位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC2通道被配置为输出) 01(CC2通道被配置为输入,IC2映射在TI 10(CC2通道被配置为输入,IC2映射在TI1上) 11(CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时。
(由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=0)才是可写的。9-8位:CC4S[1:0]:捕获/比较4选择;该位定义通道的方向(输入/输出);及输入脚的选择,定义:00(CC4通道被配置为输出)01(CC4通道被配置为输入,IC4映射在TI4上 10(CC4通道被配置为输入,IC4映射在TI3上) 11(CC4通道被配置为输入,IC4映射在TRC上。此模式仅工作在内部触发器输入被选中时。 (由TIMx_SMCR寄存器的TS位选择),注:CC4S仅在通道关闭时(TIMx_CCER寄存器的CC4E=0)才是可写的。7位:OC1CE:输出比较1清’0’使能,定义:0(OC1REF 不受ETRF输入的影响),1(一旦检测到ETRF输入高电平,清除OC1REF=0)6-4位:OC1M[2:0]输出比较1模式,该3位定义了输出参考信号OC1REF的动作,而OC1REF决定了OC1、OC1N的值。OC1REF是高电平有效,而OC1、OC1N 的有效电平取决于CC1P、CC1NP位,定义:000(冻结。输出比较寄存器TIMx_CCR1与计数器TIMx_CNT间的比较对OC1REF不起作用) 001(匹配时设置通道1为有效电平。当计数器TIMx_CNT的值与捕获/比较寄存器1 (TIMx_CCR1)相同时,强制OC1REF为高),010(强制OC1REF为低) 011(翻转。当TIMx_CCR1=TIMx_CNT时,翻转OC1REF的电平)100(强制为无效电平。强制OC1REF为低)101(强制OC1REF为高) 110:PWM模式1- 在向上计数时,一旦TIMx_CNT
1101(fSAMPLING=fDTS/32,N=5),0110(fSAMPLING=fDTS/4,N=6),1110(fSAMPLING=fDTS/32,N=6),0111(fSAMPLING=fDTS/4,N=8) 1111(fSAMPLING=fDTS/32,N=8)3-2位:IC1PSC[1:0]输入/捕获1预分频器,这2位定义了CC1输入(IC1)的预分频系数,一旦CC1E=0(TIMx_CCER寄存器中),则预分频器复位。 00(无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获),01(每2个事件触发一次捕获),10(每4个事件触发一次捕获),11(每8个事件触发一次捕1-0位:CC1S[1:0]捕获/比较1选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC1通道被配置为输出),01(CC1通道被配置为输入,IC1映射在TI 10(CC1通道被配置为输入,IC1映射在TI2上),11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时 (由TIMx_SMCR寄存器的TS位选择)。注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=0)才是可写的。1-0位:CC3S[1:0]捕获/比较3选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC3通道被配置为输出),01(CC3通道被配置为输入,IC3映射在TI 10(CC3通道被配置为输入,IC3映射在TI4上),11:CC3通道被配置为输入,IC3映射在TRC上。此模式仅工作在内部触发器输入被选中时 (由TIMx_SMCR寄存器的TS位选择)。注:CC3S仅在通道关闭时(TIMx_CCER寄存器的CC3E=0)才是可写的。TIMx_CCER(捕获/比较使能寄存器)保留CC4PCC4E保留CC3PCC3E保留CC2PCC2E保留CC1P13,9,5,1位:CC(4-1)P:输入/捕获3输出极性,定义:CC1通道配置为输出-0(OC1高电平有效),1(OC1低电平有效) CC1通道配置为输入:该位选择是IC1还是IC1的反相信号作为触发或捕获信号,0:不反相:捕获发生在IC1的上升沿;当用作外部触发器时,IC1不反相。 1(相反,捕获发生在IC1的下降沿)注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为3或2,则该位不能被修改128,4,0位:CC(4-1)E:输入/捕获3输出使能,定义:CC1通道配置为输出- 0(关闭- OC1禁止输出,因此OC1的输出电平依赖于MOE、OSSI、OSSR、OIS1、OIS1N和CC1NE位的值),1(开启) CC1通道配置为输入,该位决定了计数器的值是否能捕获入TIMx_CCR1寄存器。0(捕获禁止),1(捕获使能)TIMx_CNT(计数器)CNT[15:0]0-15位:CNT[15:0]计数器的值TIMx_PSC(预分频器)PSC[15:0]0-15位:PSC[15:0]预分频器的值,计数器的时钟频率(CK_CNT)等于fCK_PSC/( PSC[15:0]+1)。 PSC包含了每次当更新事件产生时,装入当前预分频器寄存器的值;更新事件包括计数器被TIM_EGR的UG位清’0’或被工作在复位模式的从控制器清’0’TIMx_ARR(自动重装载寄存器)ARR[15:0]15-0位:ARR[15:0]自动重装载的值,ARR包含了将要传送至实际的自动重装载寄存器的数值,当自动重装载的值为空时,计数器不工作TIMx_CCR1(捕获/比较寄存器1)CCR1[15:0]TIMx_CCR2(捕获/比较寄存器1)CCR2[15:0]TIMx_CCR3(捕获/比较寄存器1)CCR3[15:0]TIMx_CCR4(捕获/比较寄存器1)CCR4[15:0]15-0位:CCR1[15:0]捕获/比较1的值,若CC1通道配置为输出:CCR1包含了装入当前捕获/比较1寄存器的值(预装载值)。 如果在TIMx_CCMR1寄存器(OC1PE位)中未选择预装载特性,写入的数值会被立即传输至当前寄存器中。否则只有当更新事件发生时,
此预装载值才传输至当前捕获/比较1寄存器中。当前捕获/比较寄存器参与同计数器TIMx_CNT的比较,并在OC1端口上产生输出信号。 若CC1通道配置为输入:CCR1包含了由上一次输入捕获1事件(IC1)传输的计数器值TIMx_DCR(DMA控制寄存器)保留DBL[4:0]保留DBA[4:0]12-8位:DBL[4:0]DMA连续传送长度,这些位定义了DMA在连续模式下的传送长度(当对TIMx_DMAR寄存器进行读或写时,定时器则进行一次连续传送), 即:定义传输的次数,传输可以是半字(双字节)或字节:00000:1次传输 00001:2次传输 ...... 00010:3次传输 ...... 10001:18次传输4-0位:DBA[4:0]DMA基地址,这些位定义了DMA在连续模式下的基地址(当对TIMx_DMAR寄存器进行读或写时),DBA定义为从TIMx_CR1寄存器所在地址开始的偏移量 00000:TIMx_CR1, 00001:TIMx_CR2, 00010:TIMx_SMCR, ......TIMx_DMAR(连续模式的DMA地址)DMAB[15:0]15-0位:DMAB[15:0]DMA连续传送寄存器,对TIMx_DMAR寄存器的读或写会导致对以下地址所在寄存器的存取操作,TIMx_CR1地址 + DBA + DMA索引,其中:
"TIMx_CR1地址"是控制寄存器1(TIMx_CR1)所在的地址:"DBA"是TIMx_DCR寄存器中定义的基地址:"DMA索引"是由DMA自动控制的偏移量, 它取决于TIMx_DCR寄存器中定义的DBL。基本定时器相关寄存器TIMx_CR1(TIM6和TIM7控制寄存器1)保留ARPE保留OPMURSUDIS7位:ARPE自动重装载预装载使能,定义:0(TIMx_ARR寄存器没有缓冲)1(TIMx_ARR寄存器具有缓冲)3位:OPM单脉冲模式,定义:0(在发生更新事件时,计数器不停止),1(在发生下次更新事件时,计数器停止计数(清除CEN位)2位:URS更新请求源,该位由软件设置和清除,以选择UEV事件的请求源。定义:0(如果使能了中断或DMA,以下任一事件可以产生一个更新中断或DMA请求: 计数器上下溢出,设置UG位,通过从模式控制器产生更新),1(如果使能了中断或DMA,只有计数器上溢或下溢可以产生更新中断或DMA请求)1位:该位由软件设置和清除,以使能或禁止UEV事件的产生,定义:0(UEV使能。更新事件(UEV)可以由下列事件产生:计数器上下溢出,设置UG位, 通过从模式控制器产生更新,产生更新事件后,带缓冲的寄存器被加载为预加载数值。) 1:禁止UEV。不产生更新事件(UEV),影子寄存器保持它的内容(ARR、PSC)。但是如果设置了UG位或从模式控制器产生了一个硬件复位, 则计数器和预分频器将被重新初始化0位:CEN计数器使能,0(关闭计数器),1(开启),注:门控模式只能在软件已经设置了CEN位时有效,而触发模式可以自动地由硬件设置CEN位 在单脉冲模式下,当产生更新事件时CEN被自动清除。TIMx_CR2(TIM6和TIM7控制寄存器2)
MMS[2:0]6-4位:这些位用于选择在主模式下向从定时器发送的同步信息(TRGO),有以下几种组合: 000:复位使用TIMx_EGR寄存器的UG位作为触发输出(TRGO)。如果触发输入产生了复位(从模式控制器配置为复位模式),则相对于实际的复位信号, TRGO上的信号有一定的延迟。 001:使能 – 计数器使能信号CNT_EN被用作为触发输出(TRGO)。它可用于在同一时刻启动多个定时器,或控制使能从定时器的时机。计数器使能信号是通过 CEN控制位和配置为门控模式时的触发输入的’逻辑或’产生。当计数器使能信号是通过触发输入控制时,在TRGO输出上会有一些延迟,除非选择了 主/从模式(见TIMx_SMCR寄存器的MSM位)。 010:更新 – 更新事件被用作为触发输出(TRGO)。例如一个主定时器可以作为从定时器的预分频器使用。TIMx_DIER(TIM6和TIM7 DMA/中断使能寄存器)
UDE8位:UDE更新DMA请求使能,定义:0(禁止更新DMA请求),1(使能更新DMA请求)0位:UIE更新中断使能,定义:0(禁止更新中断)。1(使能更新中断)TIMx_SR(TIM6和TIM7状态寄存器)保留0位:UIF更新中断标志(硬件置位,软件清除),定义:0(没有产生更新),1(产生了更新中断)– 计数器产生上溢或下溢并且TIMx_CR1中的UDIS=0; 如果TIMx_CR1中的URS=0并且UDIS=0,当使用TIMx_EGR寄存器的UG位重新初始化计数器CNT时。TIMx_EGR(TIM6和TIM7事件产生寄存器)保留0位:UG产生更新事件,软件置1,硬件清零,定义:0(无作用),1(重新初始化定时器的计数器并产生对寄存器的更新。注意:预分频器也被清除(但预分频系数不变)TIMx_CNT(TIM6和TIM7计数器)CNT[15:0]0-15位:CNT[15:0]计数器的值TIMx_PSC(TIM6和TIM7预分频器)PSC[15:0]0-15位:PSC[15:0]预分频器的值,计数器的时钟频率(CK_CNT)等于fCK_PSC/( PSC[15:0]+1)。 PSC包含了每次当更新事件产生时,装入当前预分频器寄存器的值;更新事件包括计数器被TIM_EGR的UG位清’0’或被工作在复位模式的从控制器清’0’TIMx_ARR(TIM6和TIM7自动重装载寄存器)ARR[15:0]15-0位:ARR[15:0]自动重装载的值,ARR包含了将要传送至实际的自动重装载寄存器的数值,当自动重装载的值为空时,计数器不工作3621RTC相关寄存器RTC_CRH(RTC控制寄存器高位)0987保留2位:OWIE允许溢出中断位,定义:0(屏蔽中断),1(允许中断)1位:ALRIE允许闹钟中断位,定义:0(屏蔽中断),1(允许中断)0位:SECIE允许秒中断位,定义:0(屏蔽中断),1(允许中断)RTC_CRL(RTC控制寄存器低位)0987保留6543OWIE2ALRIE16RTOFF5CNF4RSF3OWF2ALRF1
5位:RTOFFRTC操作关闭(只读位)TC模块利用这位来指示对其寄存器进行的最后一次操作的状态,指示操作是否完成。若此位为’0’, 则表示无法对任何的RTC寄存器进行写操作。定义:0(上一次对RTC寄存器的写操作仍在进行),1(上一次对RTC寄存器的写操作已经完成)4位:CNF配置标志,此位必须由软件置’1’以进入配置模式,从而允许向RTC_CNT、RTC_ALR或RTC_PRL寄存器写入数据。只有当此位在被置’1’ 并重新由软件清’0’后,才会执行写操作,定义:0(退出配置模式(开始更新RTC寄存器),1(进入配置模式)3位:RSF寄存器同步标志,每当RTC_CNT寄存器和RTC_DIV寄存器由软件更新或清’0’时,此位由硬件置’1’。在APB1复位后,或APB1时钟停止后,此位必须由 软件清’0’。要进行任何的读操作之前,用户程序必须等待这位被硬件置’1’,以确保RTC_CNT、RTC_ALR或RTC_PRL已经被同步。 定义:0(寄存器尚未被同步),1(寄存器已经被同步)2位:OWF溢出标志,当32位可编程计数器溢出时,此位由硬件置’1’。如果RTC_CRH寄存器中OWIE=1,则产生中断。此位只能由软件清’0’。 对此位写’1’是无效的,定义:0(无溢出),1(32位可编程计数器溢出)1位:ALRF闹钟标志,当32位可编程计数器达到RTC_ALR寄存器所设置的预定值,此位由硬件置’1’。如果RTC_CRH寄存器中ALRIE=1,则产生中断。 此位只能由软件清’0’。对此位写’1’是无效的,定义:0(无闹钟),1(有闹钟)0位:SECF秒标志,当32位可编程预分频器溢出时,此位由硬件置’1’同时RTC计数器加1。因此,此标志为分辨率可编程的RTC计数器提供一个周期性的信号(通常为1 如果RTC_CRH寄存器中SECIE=1,则产生中断。此位只能由软件清除。对此位写’1’是无效的 ,定义:0(秒标志条件不成立),1(秒标志条件成立)注1:任何标志位都将保持挂起状态,直到适当的RTC_CR请求位被软件复位,表示所请求的中断已经被接受注2:在复位时禁止所有中断,无挂起的中断请求,可以对RTC寄存器进行写操作。注3:当APB1时钟不运行时,OWF、ALRF、SECF和RSF位不被更新注4:OWF、ALRF、SECF和RSF位只能由硬件置位,由软件来清零。注5:若ALRF=1且ALRIE=1,则允许产生RTC全局中断。如果在EXTI控制器中允许产生EXTI线 17中断,则允许产生RTC全局中断和RTC闹钟中断注6:若ALRF=1,如果在EXTI控制器中设置了EXTI线 17的中断模式,则允许产生RTC闹钟中断;如果在EXTI控制器中设置了EXTI线 17的事件模式, 则这条线上会产生一个脉冲(不会产生RTC闹钟中断)RTC_PRLH(RTC预分频装载寄存器高位)保留PRL[19:16]3-0位:PRL[19:16]RTC预分频装载值高位,fTR_CLK = fRTCCLK/(PRL[19:0]+1),注:不推荐使用0值,否则无法正确的产生RTC中断和标志位。RTC_PRLL(RTC预分频装载寄存器低位)9876PRL[15:0]05432115-0位:PRL[15:0]RTC预分频装载值低位1514131211RTC_DIVH(RTC预分频器余数寄存器高位)109876保留RTC_DIVL(RTC预分频器余数寄存器低位)109876RTC_DIV[15:0]54321RTC_DIV[19:0]3-0位:RTC_DIV[19:16]RTC时钟分频器余数高位,只读寄存器432115-0位:RTC_DIV[15:0]RTC时钟分频器余数低位,只读寄存器RTC_CNTH(RTC计数器寄存器高位)098765432RTC_CNT[31:16]15-0位:RTC_CNT[31:16]RTC计数器高位,可通过读RTC_CNTH寄存器来获得RTC计数器当前值的高位部分。要对此寄存器进行写操作前,必须先进入配置模式RTC_CNTL(RTC计数器寄存器低位)1
8765432RTC_CNT[15:0]15-0位:RTC_CNT[15:0]RTC计数器低位,可通过读RTC_CNTH寄存器来获得RTC计数器当前值的低位部分。要对此寄存器进行写操作前,必须先进入配置模式RTC_ALRH(RTC闹钟寄存器高位)098765432RTC_ALR[31:16]15-0位:RTC_ALR[31:16]RTC闹钟值高位,此寄存器用来保存由软件写入的闹钟时间的高位部分。要对此寄存器进行写操作,必须先进入配置模式RTC_ALRL(RTC闹钟寄存器低位)098765432RTC_ALR[15:0]15-0位:RTC_ALR[31:16]RTC闹钟值低位,此寄存器用来保存由软件写入的闹钟时间的低位部分。要对此寄存器进行写操作,必须先进入配置模式09111独立看门狗相关寄存器键寄存器(IWDG_KR)3191817保留KEY[15:0]15-0位:KEY[15:0]键值(只写寄存器,读出值为0x0000),软件必须以一定的间隔写入0xAAAA,否则,当计数器为0时,看门狗会产生复位。 写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器,写入0xCCCC,启动看门狗工作(若选择了硬件看门狗则不受此命令字限制)IWDG_PR(预分频寄存器)3191817保留保留PR[2:0]PR[2:0]: 预分频因子,这些位具有写保护设置,通过设置这些位来选择计数器时钟的预分频因子。要改变预分频因子,IWDG_SR寄存器的PVU位必须为0。 定义:000(预分频因子=4)001(分频因子=8)010(=16)011(=32)100(=64)101(=128)110(=256)111(=256). 注意:对此寄存器进行读操作, 将从VDD电压域返回预分频值。如果写操作正在进行,则读回的值可能是无效的。因此,只有当IWDG_SR寄存器的PVU位为0时,读出的值才有效。IWDG_RLR(重装载寄存器)3191817保留保留RL[11:0]11-0位:RL[11:0]看门狗计数器重装载值,这些位具有写保护功能,参看17.3.2节。用于定义看门狗计数器的重装载值,每当向IWDG_KR寄存器写入0xAAAA时, 重装载值会被传送到计数器中。随后计数器从这个值开始递减计数。看门狗超时周期可通过此重装载值和时钟预分频值来计算,参照表83。只有当IWDG_S 寄存器中的RVU位为0时,才能对此寄存器进行修改。注:对此寄存器进行读操作,将从VDD电压域返回预分频值。如果写操作正在进行, 则读回的值可能是无效的。因此,只有当IWDG_SR寄存器的RVU位为0时,读出的值才有效。IWDG_SR(状态寄存器)3191817保留保留RVU
1位:RVU看门狗计数器重装载值更新,此位由硬件置’1’用来指示重装载值的更新正在进行中。当在VDD域中的重装载更新结束后,此位由硬件清’0’ (最多需5个40kHz的RC周期)。重装载值只有在RVU位被清’0’后才可更新。0位:PVU看门狗预分频值更新,此位由硬件置’1’用来指示预分频值的更新正在进行中。当在VDD域中的预分频值更新结束后,此位由硬件清’0’ (最多需5个40kHz的RC周期)。预分频值只有在PVU位被清’0’后才可更新。窗口看门狗相关寄存器322212保留WDGAT6T5T4T3T2T17位:WDGA激活位,此位由软件置’1’,但仅能由硬件在复位后清’0’。当WDGA=1时,看门狗可以产生复位。定义:0(禁止),1(启用)6-0位:T[6:0]7位计数器,这些位用来存储看门狗的计数器值。每(4096x2WDGTB)个PCLK1周期减1。当计数器值从40h变为3Fh时(T6变成0),产生看门狗复位。WWDG_CFR(配置寄存器)3191817保留保留EWIWDGTB1WDGTB0W6W5W4W3W2W19位:EWI提前唤醒中断,此位若置’1’,则当计数器值达到40h,即产生中断。此中断只能由硬件在复位后清除8-7位:WDGTB[1:0]时基,预分频器的时基可以设置如下:00(CK计时器时钟(PCLK1除以4096)除以1)01(除以2),10(除以4),11(除以8)6-0位:W[6:0]7位窗口值,这些位包含了用来与递减计数器进行比较用的窗口值WWDG_SR(状态寄存器)3191817保留保留0位:EWIF提前唤醒中断标志,当计数器值达到40h时,此位由硬件置'1'。它必须通过软件写'0'来清除。对此位写'1'无效。若中断未被使能,此位也会被置'1'。可配置静态存储器控制器相关寄存器FSMC_BCR1„4(SRAM/NOR闪存片选控制寄存器 1„4)3191817保留CBURSTRW保留保留EXTMODWAITENWRENWAITCFGWRAPMODWAITPOLBURSTEN保留FACCENMWID[2:0]MTYP[2:0]MUXEN19位:CBURSTRW成组写使能位,对于Cellular RAM,该位使能写操作的同步成组传输协议。定义:0(写操作始终处于异步模式),1(写操作为同步模式) 对于处于成组传输模式的闪存存储器,这一位允许/禁止通过NWAIT信号插入等待状态。读操作的同步成组传输协议使能位是FSMC_BCRx寄存器的BURSTEN位14位:EXTMOD扩展模式使能,该位允许FSMC使用FSMC_BWTR寄存器,即允许读和写使用不同的时序。定义:0(0:不使用FSMC_BWTR寄存器,这是复位后的默认状态 1(FSMC使用FSMC_BWTR寄存器)13位:WAITEN等待使能位,当闪存存储器处于成组传输模式时,这一位允许/禁止通过NWAIT信号插入等待状态。 0(禁用NWAIT信号,在设置的闪存保持周期之后不会检测NWAIT信号插入等待状态) 1(使用NWAIT信号,在设置的闪存保持周期之后根据NWAIT信号插入等待状态;这是复位后的默认状态)12位:WREN写使能位,该位指示FSMC是否允许/禁止对存储器的写操作。定义:0(禁止FSMC对存储器的写操作,否则产生一个AHB错误。)1(允许复位后的默认状态11位:WAITCFG配置等待时序,当闪存存储器处于成组传输模式时,NWAIT信号指示从闪存存储器出来的数据是否有效或是否需要插入等待周期。
该位决定存储器是在等待状态之前的一个时钟周期产生NWAIT信号,还是在等待状态期间产生NWAIT信号。 定义: 0(NWAIT信号在等待状态前的一个数据周期有效;这是复位后的默认状态。) 1(NWAIT信号在等待状态期间有效(不适用于Cellular RAM))10位:WRAPMOD支持非对齐的成组模式,该位决定控制器是否支持把非对齐的AHB成组操作分割成2次线性操作;该位仅在存储器的成组模式下有效。 定义: 0(不允许直接的非对齐成组操作;这是复位后的默认状态)1(允许直接的非对齐成组操作)9位:WAITPOL等待信号极性,设置存储器产生的等待信号的极性;该位仅在存储器的成组模式下有效。定义:0(NWAIT低有效;这是复位后的默认状态)1(高有效)8位:BURSTEN成组模式使能,允许对闪存存储器进行成组模式访问;该位仅在闪存存储器的同步成组模式下有效。定义:0(禁用成组访问模式;复位后状态)1(使用)6位:FACCEN闪存访问使能,允许对NOR闪存存储器的访问操作,定义:0(禁止对NOR闪存存储器的访问操作),1(允许)5-4位:MWID存储器数据总线宽度,定义外部存储器总线的宽度,适用于所有类型的存储器,定义:00(8位),1(16位默认)3-2位:MTYP存储器类型,定义外部存储器的类型,00(SRAM、ROM(存储器块2...4在复位后的默认值),01(PSRAM(Cellular RAM: CRAM) 10(NOR闪存(存储器块1在复位后的默认值),11:保留1位:MUXEN地址/数据复用使能位,当设置了该位后,地址的低16位和数据将共用数据总线,该位仅对NOR和PSRM存储器有效,0(地址/数据不复用) 1(地址/数据复用数据总线;这是复位后的默认状态)0位:MBKEN存储器块使能位,开启对应的存储器块。复位后存储器块1是开启的,其它所有存储器块为禁用。访问一个禁用的存储器块将在AHB总线上产生一个错误 定义:0(禁用对应的存储器块) 1(启用对应的存储器块)FSMC_BTR1„4(SRAM/NOR闪存片选时序寄存器)3191817保留ACCMODDATLATCLKDIVBUSTURNDATASTADDHLDADDSET29-28位:ACCMOD访问模式,定义异步访问模式。这2位只在FSMC_BCRx寄存器的EXTMOD位为1时起作用,定义:00(访问模式A),01(B),10(C),11(D)27-24位:DATLAT(见本表格下面的注释):(同步成组式NOR闪存的)数据保持时间,处于同步成组模式的NOR闪存,需要定义在读取第一个数据之前等待的存储器周期数 这个时间参数不是以HCLK表示,而是以闪存时钟(CLK)表示。在访问异步NOR闪存、SRAM或ROM时,这个参数不起作用。操作CRAM时,这个参数必须为0。 定义:0000(第一个数据保持时间为2个CLK时钟周期)。。。1111(17个CLK时钟周期,默认)在访问异步NOR闪存、SRAM或ROM时,这个参数不起作用23-20位:CLKDIV时钟分频比(CLK信号),定义CLK时钟输出信号的周期:0000(保留),0001(1个CLK周期=2个HCLK周期)0010(1个CLK=3个HCLK)„(16个HCLK19-16位:BUSTURN总线恢复时间,这些位用于定义一次读操作之后在总线上的延迟(仅适用于总线复用模式的NOR闪存操作),一次读操作之后控制器需要在数据总线 为下次操作送出地址,这个延迟就是为了防止总线冲突。如果扩展的存储器系统不包含总线复用模式的存储器,或最慢的存储器可以在6个HCLK时钟周期 数据总线恢复到高阻状态,可以设置这个参数为其最小值。定义:0000(总线恢复时间=1个HCLK时钟周期),1(16个HCLK时钟周期,默认)15-8位:DATAST数据保持时间,这些位定义数据的保持时间(见图162图174至),适用于SRAM、ROM和异步总线复用模式的NOR闪存操作,定义:0000 0000(保留) 00000001(DATAST保持时间=2个HCLK时钟周期)1111 1111(256个HCLK,默认)。对于每一种存储器类型和访问方式的数据保持时间,(见图162图174)。7-4位:ADDHLD地址保持时间,这些位定义地址的保持时间(见图171图174至),适用于SRAM、ROM和异步总线复用模式的NOR闪存操作。定义: 0000(ADDHLD保持时间=1个HCLK时钟周期)1111(16个HCLK,默认)注:在同步操作中,这个参数不起作用,地址保持时间始终是1个存储器时钟周期。3-0位:ADDSET地址建立时间,这些位定义地址的建立时间(见图162图174至),适用于SRAM、ROM和异步总线复用模式的NOR闪存操作,定义: 0000(ADDSET建立时间=1个HCLK时钟周期)1111(16个HCLK,默认)注:在同步操作中,这个参数不起作用,地址建立时间始终是1个存储器时钟周期。FSMC_BWTR1„4(SRAM/NOR闪存写时序寄存器 1„4)3191817保留ACCMODDATLATCLKDIV保留DATASTADDHLDADDSET29-28位:ACCMOD访问模式,定义异步访问模式。这2位只在FSMC_BCRx寄存器的EXTMOD位为1时起作用,定义:00(访问模式A),01(B),10(C),11(D)27-24位:DATLAT:(NOR闪存的同步成组模式)数据保持时间,定义在读取第一个数据之前等待的存储器周期数目,注:操作CRAM时,这个参数必须为0。定义: 0000(第一个数据的保持时间为2个CLK时钟周期)1111(17个CLK),
注:这个时间参数不是以HCLK表示,而是以闪存时钟(CLK)表示。2、在访问异步NOR闪存、SRAM或ROM时,这个参数不起作用23-20位:CLKDIV时钟分频比(CLK信号),定义CLK时钟输出信号的周期:0000(保留),0001(1个CLK周期=2个HCLK周期)0010(1个CLK=3个HCLK)„(16个HCLK15-8位:DATAST数据保持时间,这些位定义数据的保持时间(见图162图174至),适用于SRAM、ROM和异步总线复用模式的NOR闪存操作,定义:0000 0000(保留) 00000001(DATAST保持时间=2个HCLK时钟周期)1111 1111(256个HCLK,默认)。对于每一种存储器类型和访问方式的数据保持时间,(见图162图174)。7-4位:ADDHLD地址保持时间,这些位定义地址的保持时间(见图171图174至),适用于SRAM、ROM和异步总线复用模式的NOR闪存操作。定义: 0000(ADDHLD保持时间=1个HCLK时钟周期)1111(16个HCLK,默认)注:在同步操作中,这个参数不起作用,地址保持时间始终是1个存储器时钟周期。3-0位:ADDSET地址建立时间,这些位定义地址的建立时间(见图162图174至),适用于SRAM、ROM和异步总线复用模式的NOR闪存操作,定义: 0000(ADDSET建立时间=1个HCLK时钟周期)1111(16个HCLK,默认)注:在同步操作中,这个参数不起作用,地址建立时间始终是1个存储器时钟周期。FSMC_PCR2..4(PC卡/NAND闪存控制寄存器 2..4)3191817保留ECCPSTAR[2:0]TCLR[4:0]保留ECCENPWID[2:0]PTYPPBKENPWAITEN19-17位:ECCPSECC页面大小,定义扩展的ECC页面大小:000(256字节),001(512字节),010(1024),011(2048),100(4096),101(8192)16-13位:TAR-ALE至RE的延迟,以AHB时钟周期(HCLK)为单位设置从ALE变低至RE变低的时间,时间计算:t_ar = (TAR + SET + 4) x THCLK, 这里THCLK表示HCLK周期长度,定义:0000(1个HCLK周期(默认值))1111(16个HCLK)注:根据不同的地址空间,SET是MEMSET或是ATTSET12-9位:TCLRCLE至RE的延迟,以AHB时钟周期(HCLK)为单位设置从CLE变低至RE变低的时间。时间计算:t_clr = (TCLR + SET + 4) x THCLK,THCLK表示HCLK周期 定义:0000(1个HCLK周期(默认值),。。。1111(16个HCLK),注:根据不同的地址空间,SET是MEMSET或是ATTSET6位:ECCENECC计算电路使能位,0(关闭并复位ECC电路(复位后的默认值),1(使能ECC电路)5-4位:PWID数据总线宽度,定义外部NAND闪存数据总线的宽度,定义:00(8位默认值),01(16位(PC卡必须使用此设置)10,11(保留)3位:PTYP存储器类型,定义对应的存储器块上连接的存储器类型,定义:0(PC卡、CF卡、CF+卡或PCMCIA),1(NAND闪存(复位后的默认值)2位:PBKEN-PC卡/NAND存储器块使能位,使能存储器块。访问一个未使能的存储器块会产生一个AHB总线错误,定义:0(关闭对应的存储器块,默认值);1(使能1位:PWAITEN等待功能使能位,使能PC卡/NAND闪存存储器块的等待功能,定义:0(关闭,默认),1(使能)注:对于PC卡,如果使能了等待功能, MEMWAITx/ATTWAITx/IOWAITx位的值必须高于tv(IORDY-NOE)/THCLK+4,其中tv(IORDY-NOE)是一旦NOE为低时NWAIT变低所需的最长时间FSMC_SR2..4(FIFO状态和中断寄存器 2..4)3191817保留保留FEMPTIFENILENIRENIFSIRS6位:FEMPT-FIFO空标志,只读位,指示FIFO状态,定义:0(FIFO不空),1(FIFO空)5位:IFEN中断下降沿检测使能,定义:0(关闭中断下降沿检测请求),1(使能中断下降沿检测请求)4位:ILEN中断高电平检测使能,定义:0(关闭中断高电平检测请求),1(使能中断高电平检测请求)3位:IREN上升沿中断检测使能,定义:0(关闭中断上降沿检测请求),1(使能中断上降沿检测请求)2位:IFS中断下降沿状态,该位由硬件设置,软件清除,定义:0(没有产生中断下降沿),1(产生了中断下降沿)1位:IRS中断高电平状态,该位由硬件设置,软件清除,定义:0(没有产生中断高电平),1(产生了中断高电平)0位:IRS中断上升沿状态,该位由硬件设置,软件清除,定义:0(没有产生中断上升沿),1(产生了中断上升沿)FSMC_PMEM2..4(通用存储空间时序寄存器 2..4)3191817MEMHIZxMEMHOLDxMEMWAITxMEMSETx31-24位:MEMHIZx在通用空间x数据总线的高阻时间,当在通用存储空间x开始执行对PC卡/NAND闪存的写操作后,数据总线需要保持一段时间的高阻状态,该参数
以HCLK时钟周期数目(NAND类型时+1)定义数据总线高阻态的时间。这个参数仅对写操作有效 定义:0000 0000(0x00)PC卡为0个HCLK周期/NAND闪存为1个HCLK周期;1111 1111(0xFF)PC卡为255个HCLK周期/NAND闪存为256个HCLK周期,默认23-16位:MEMHOLDx在通用空间x的保持时间,当在通用存储空间x对PC卡/NAND闪存进行读或写操作时,该参数以HCLK时钟周期数目定义了发送命令(NWE、NOE变高) 地址信号(对于写操作则是数据信号)保持的时间。定义:00000000(保留),00000001(1个HCLK周期),11111111(255个HCLK周期,默认)15-8位:MEMWAITx在通用空间x的等待时间,当在通用存储空间x对PC卡/NAND闪存进行读或写操作时,该参数以HCLK(+1)时钟周期数目定义了保持命令(NWE、NOE为 的最小时间。当该参数定义的时间结束时,如果等待信号(NWAIT)有效(低),则命令的保持时间会被拉长。定义:0000 0000(保留) 0000 0001(2个HCLK周期(加上由NWAIT信号变低引入的等待周期),1111 1111(256个HCLK周期(加上由卡的NWAIT信号变低引入的等待周期,默认值)7-0位:当在通用存储空间x对PC卡/NAND闪存进行读或写操作时,该参数以HCLK(操作PC卡时+1,操作NAND闪存时+2)时钟周期数目定义了发送命令(NWE、NOE变低)之 建立地址信号的时间。定义:00000000(PC卡为1个HCLK周期/NAND闪存为2个HCLK周期)11111111(PC卡为256个HCLK周期/NAND闪存为257个HCLK周期,默FSMC_PATT2..4 (属性存储空间时序寄存器 2..4)3191817ATTHIZxATTHOLDxATTWAITxATTSETx31-24位:ATTHIZx在属性空间x数据总线的高阻时间,当在属性存储空间x开始执行对PC卡/NAND闪存的写操作后,数据总线需要保持一段时间的高阻状态, 该参数以HCLK时钟周期数目定义数据总线高阻态的时间。这个参数仅对写操作有效。定义:00000000(0个HCLK周期),1111 1111(255个HCLK周期默认23-16位:ATTHOLDx在属性空间x的保持时间,当在属性存储空间x对PC卡/NAND闪存进行读或写操作时,该参数以HCLK时钟周期数目定义了发送命令(NWE、NOE变高) 地址信号(对于写操作则是数据信号)保持的时间,定义:00000000(保留),0000 0001(1个HCLK周期),11111111(255个HCLK周期默认值)。15-8位:ATTWAITx在属性空间x的等待时间,当在属性存储空间x对PC卡/NAND闪存进行读或写操作时,该参数以HCLK(+1)时钟周期数目定义了保持命令(NWE、NOE为 的最小时间。当该参数定义的时间结束时如果等待信号(NWAIT)有效(低),则命令的保持时间会被拉长,定义: 0000 0000(1个HCLK周期(加上由NWAIT信号变低引入的等待周期),1111 1111(256个HCLK周期(加上由卡的NWAIT信号变低引入的等待周期,默认值)。7-0位:ATTSETx在属性空间x的建立时间,当在属性存储空间x对PC卡/NAND闪存进行读或写操作时,该参数以HCLK(+1)时钟周期数目定义了发送命令(NWE、NOE变低 之前建立地址信号的时间,定义:0000 0000(1个HCLK周期),1111 1111(256个HCLK周期,默认值)。FSMC_PIO4 (I/O空间时序寄存器4)3191817IOHIZxIOHOLDxIOWAITxIOSETx31-24位:IOHIZx在I/O空间x数据总线的高阻时间,当在I/O空间x开始执行对PC卡的写操作后,数据总线需要保持一段时间的高阻状态,该参数以HCLK时钟周期数目 定义数据总线高阻态的时间。这个参数仅对写操作有效,定义:00000000(0个HCLK周期),11111111(255个HCLK周期,默认值)。23-16位:IOHOLDx在I/O空间x的保持时间,当在I/O空间x对PC卡进行读或写操作时,该参数以HCLK时钟周期数目定义了发送命令(NWE、NOE变高)后, 地址信号(对于写操作则是数据信号)保持的时间,定义:00000000(保留),0000 0001(1个HCLK周期),11111111(255个HCLK周期默认值)。15-8位:IOWAITx在I/O空间x的等待时间,当在I/O空间x对PC卡进行读或写操作时,该参数以HCLK(+1)时钟周期数目定义了保持命令(SMNWE、SMNOE为低)的最小时间 当该参数定义的时间结束时,如果等待信号(NWAIT)有效(低),则命令的保持时间会被拉长 定义:0000 0000(保留),00000001(2个HCLK周期(加上由NWAIT信号变低引入的等待周期);11111111(256个HCLK周期(加NWAIT等待周期,默认值)7-0位:IOSETx在I/O空间x的建立时间,当I/O空间x对PC卡进行读或写操作时,该参数以HCLK(+1)时钟周期数目定义了发送命令(NWE、NOE变低)之前建立地址信号的时ECC结果寄存器2/3 (FSMC_ECCR2/3)3191817ECCX[31:16]ECCX[15:0]31-0位:ECCx-ECC结果,ECC结果有效位
ECCPS[2:0]0110页大小(字节)2565121024ECC有效位ECC[21:0]ECC[23:0]ECC[25:0]ECCPS[2:1]11100101页大小(字节)2ECC有效位ECC[27:0]ECC[29:0]ECC[31:0]SDIO相关寄存器SDIO_POWER(SDIO电源控制寄存器)3191817保留保留PWRCTRL[1-0位:PWRCTRL电源控制位,这些位用于定义卡时钟的当前功能状态,定义:00(电源关闭,卡的时钟停止),01(保留),10(保留的上电状态),11(上电状态,卡的时钟开注意: 写数据后的7个HCLK时钟周期内,不能写入这个寄存器SDIO_CLKCR(SDIO时钟控制寄存器)3191817保留保留HWFC_ENNEGEDGEWIDBUSBYPASSPWRSAVCLKENCLKDIV14位:HWFC_EN硬件流控制使能,当使能硬件流控制后,关于TXFIFOE和RXFIFOF中断信号的意义请参考20.9.11节的SDIO状态寄存器的定义, 定义:0(关闭硬件流控制),1(使能)13位:NEGEDGE-SDIO_CK相位选择位,0(在主时钟SDIOCLK的上升沿产生SDIO_CK),1(在主时钟SDIOCLK的下降沿产生SDIO_CK)12-11位:WIDBUS宽总线模式使能位,定义:00(默认总线模式,使用SDIO_D0),01(4位总线模式,使用SDIO_D[3:0]),10(8位总线模式,使用SDIO_D[7:0])10位:BYPASS旁路时钟分频器,定义:0(关闭旁路:驱动SDIO_CK输出信号之前,依据CLKDIV数值对SDIOCLK分频)1(使能旁路:SDIOCLK直接驱动SDIO_CK输出信9位:PWRSAV省电配置位,为了省电,当总线为空闲时,设置PWRSAV位可以关闭SDIO_CK时钟输出,定义:0(始终输出SDIO_CK),1(仅在有总线活动时才输出SDIO_CK)8位:CLKEN时钟使能位,定义:0(SDIO_CK关闭),1(SDIO_CK使能)7-0位:CLKDIV时钟分频系数,这个域定义了输入时钟(SDIOCLK)与输出时钟(SDIO_CK)间的分频系数:SDIO_CK频率 = SDIOCLK/[CLKDIV + 2]。 注意:1当SD/SDIO卡或多媒体卡在识别模式,SDIO_CK的频率必须低于400kHz。2 当所有卡都被赋予了相应的地址后,时钟频率可以改变到卡总线允许的最大频 3 写数据后的7个HCLK时钟周期内不能写入这个寄存器。对于SD I/O卡,在读等待期间可以停止SDIO_CK,此时SDIO_CLKCR寄存器不控制SDIO_CK。SDIO_ARG(SDIO参数寄存器)3191817CMDARG[31:16]CMDARG[15:0]31-0位:CMDARG命令参数,命令参数是发送到卡中命令的一部分,如果一个命令包含一个参数,必须在写命令到命令寄存器之前加载这个寄存器。SDIO_CMD(SDIO命令寄存器)SDIO_CMD寄存器包含命令索引和命令类型位。命令索引是作为命令的一部分发送到卡中。命令类型位控制命令通道状态机(CPSM)3191817保留保留ATACMDnIENENCMDcomSDIOSuspCPSMENWAITPENDWAITINTWAITRESP[1:0]CMDINDEX[5:0]14位:ATACMD(CE-ATA命令)如果设置该位,CPSM转至CMD6113位:nIEN不使能中断,如果未设置该位,则使能CE-ATA设备的中断
12位:ENCMDcompl使能CMD完成,如果设置该位,则使能命令完成信号11位:SDIOSuspend-SD I/O暂停命令,如果设置该位,则将要发送的命令是一个暂停命令(只能用于SDIO卡)10位:CPSMEN命令通道状态机(CPSM)使能位,如果设置该位,则使能CPSM。9位:WAITPEND-CPSM等待数据传输结束(CmdPend内部信号),如果设置该位,则CPSM在开始发送一个命令之前等待数据传输结束8位:WAITINT-CPSM等待中断请求,如果设置该位,则CPSM关闭命令超时控制并等待中断请求7-6位:WAITRESP等待响应位,这2位指示CPSM是否需要等待响应,如果需要等待响应,则指示响应类型,定义:00(无响应,期待CMDSENT标志) 01(短响应,期待CMDREND或CCRCFAIL标志),10(无响应,期待CMDSENT标志),11(长响应,期待CMDREND或CCRCFAIL标志)5-0位:CMDINDEX命令索引,命令索引是作为命令的一部分发送到卡中 注意: 1 写数据后的7个HCLK时钟周期内不能写入这个寄存器。 2 多媒体卡可以发送2种响应:48位长的短响应,或136位长的长响应。SD卡和SD I/O卡只能发送短响应,参数可以根据响应的类型而变化, 软件将根据发送的命令区分响应的类型。CE-ATA设备只发送短响应。SDIO_RESPCMD(SDIO命令响应寄存器)3191817保留保留RESPCMD[5:0]5-0位:RESPCMD响应的命令索引,只读位,包含最后收到的命令响应中的命令索引SDIO_RESPx(SDIO响应1..4寄存器)3191817CARDSTATUSx[31:16]CARDSTATUSx[15:0]31-0位:CARDSTATUSx:根据响应状态,卡的状态长度是32位或127位,总是先收到卡状态的最高位,SDIO_RESP3寄存器的最低位始终为0。寄存器短响应长响应寄存器短响应长响应SDIO_RESP1卡状态[31:0]卡状态[127:96]SDIO_RESP2不用卡状态[95:64]SDIO_RESP2不用卡状态[63:32]SDIO_RESP2不用卡状态[31:1]SDIO数据定时器寄存器(SDIO_DTIMER)SDIO_DTIMER寄存器包含以卡总线时钟周期为单位的数据超时时间。一个计数器从SDIO_DTIMER寄存器加载数值,并在数据通道状态机(DPSM)进入Wait_R或繁忙状态进行递减计数,当DPSM处在这些状态时,如果计数器减为0,则设置超时标志。3191817DATATIME[31:16]DATATIME[15:0]31-0位:DATATIME数据超时时间,以卡总线时钟周期为单位的数据超时时间,注意:在写入数据控制寄存器进行数据传输之前,须先写数据定时器和数据长度寄存SDIO_DLEN(SDIO数据长度寄存器)3191817保留DATALENGTH[24:16]DATALENGTH[15:0]24-0位:DATALENGTH数据长度,要传输的数据字节数目,注意 对于块数据传输,数据长度寄存器中的数值必须是数据块长度(见SDIO_DCTRL)的倍数。 在写入数据控制寄存器进行数据传输之前,必须先写入数据定时器寄存器和数据长度寄存器SDIO_DCTRL(SDIO数据控制寄存器)
2423222120191817保留保留SDIOENRWMODRWSTOPRWSTARTDBLOCKSIZEDMAENDTMODEDTDIR11位:SDIOEN-SD I/O使能功能,如果设置了该位,则DPSM执行SD I/O卡特定的操作10位:RWMOD读等待模式,定义:0(停止SDIO_CK控制读等待),1(使用SDIO_D2控制读等待)9位:RWSTOP读等待停止,定义:0(如果设置了RWSTART,执行读等待)1(如果设置了RWSTART,停止读等待)8位:RWSTART读等待开始,设置该位开始读等待操作7-4位:DBLOCKSIZE数据块长度,当选择了块数据传输模式,该域定义数据块长度:0000(1字节)0001(2字节)0010(4字节)0011(8字节)0100(16字节) 0101(32)0110(64)0111(128)1000(256)1001(512)1010(1024)1011(2048)1100(4096)1101(8192)1110(16384)1111(保留)3位:DMAEN-DMA使能位,定义:0(关闭DMA)1(使能DMA)2位:DTMODE数据传输模式,定义:0(块数据传输)1(流数据传输)1位:DTDIR数据传输方向,定义:0(控制器至卡)1(卡至控制器)0位:DTEN数据传输使能位,如果设置该位为1,则开始数据传输。根据DTSIR方向位,DPSM进入Wait_S或Wait_R状态,如果在传输的一开始就设置了RWSTART位, 则DPSM进入读等待状态。不需要在数据传输结束后清除使能位,但必须更改SDIO_DCTRL以允许新的数据传输注意 写数据后的7个HCLK时钟周期内不能写入这个寄存器SDIO数据计数器寄存器(SDIO_DCOUNT)3191817保留DATACOUNT[24:16]DATACOUNT[15:0]24-0位:DATACOUNT:数据计数数值,读这个寄存器时返回待传输的数据字节数,写这个寄存器无作用。注意 只能在数据传输结束时读这个寄存器。SDIO_STA(SDIO状态寄存器)3191817保留CEATAENDSDIOITRXDVALTXDVALRXFIFOETXFIFOERXFIFOFRXFIFOHFTXFIFOHERXACTTXACTCMDACTDBCKENDSTBITERRDATAENDCMDSENTCMDRENDRXOVERRTXUNDERRDTIMEOUTCTIMEOUTDCRCFAIL23位:CEATAEND在CMD61接收到CE-ATA命令完成信号22位:SDIOIT收到SDIO中断21位:RXDVAL在接收FIFO中的数据可用20位:TXDVAL在发送FIFO中的数据可用19位:RXFIFOE接收FIFO空18位:TXFIFOE发送FIFO空,若使用了硬件流控制,当FIFO包含2个字时,TXFIFOE信号变为有效17位:RXFIFOF接收FIFO满,若使用了硬件流控制,当FIFO包含2个字时,TXFIFOE信号变为有效16位:TXFIFOF发送FIFO满15位:RXFIFOHF接收FIFO半满,FIFO中至少还有8个字14位:TXFIFOHE发送FIFO半空,FIFO中至少还可以写入8个字13位:RXACT正在接收数据12位:TXACT正在发送数据11位:CMDACT正在传输命令10位:DBCKEND已发送/接收数据块(CRC检测成功)9位:STBITERR在宽总线模式,没有在所有数据信号上检测到起始位313
8位:DATAEND数据结束(数据计数器,SDIO_DCOUNT = 0)7位:CMDSENT命令已发送(不需要响应)6位:CMDREND已接收到响应(CRC检测成功)5位:RXOVERR接收FIFO上溢错误4位:TXUNDERR发送FIFO下溢错误3位:DTIMEOUT数据超时2位:CTIMEOUT命令响应超时,命令超时时间是一个固定的值,为64个SDIO_CK时钟周期1位:DCRCFAIL已发送/接收数据块(CRC检测失败)0位:CCRCFAIL已收到命令响应(CRC检测失败)SDIO_ICR(SDIO清除中断寄存器)3191817保留CEATAENDCSDIOITC保留保留DBCKENDCSTBITERRCDATAENDCCMDSENTCCMDRENDCRXOVERRCTXUNDERRCDTIMEOUTCCTIMEOUTDCRCFAILC23位:CEATAENDC-CEATAEND标志清除位,软件设置该位以清除CEATAEND标志22位:SDIOITC-SDIOIT标志清除位,软件设置该位以清除SDIOIT标志10位:DBCKENDC-DBCKEND标志清除位,软件设置该位以清除DBCKEND标志9位:STBITERRC-STBITERR标志清除位,软件设置该位以清除STBITERR标志8位:DATAENDC-DATAEND标志清除位,软件设置该位以清除DATAEND标志7位:CMDSENTC-CMDSENT标志清除位,软件设置该位以清除CMDSENT标志6位:CMDRENDC-CMDREND标志清除位,软件设置该位以清除CMDREND标志5位:RXOVERRC-RXOVERR标志清除位,软件设置该位以清除RXOVERR标志4位:TXUNDERRC-TXUNDERR标志清除位,软件设置该位以清除TXUNDERR标志3位:DTIMEOUTC-DTIMEOUT标志清除位,软件设置该位以清除DTIMEOUT标志2位:CTIMEOUT-CTIMEOUT标志清除位,软件设置该位以清除CTIMEOUT标志1位:DCRCFAILC-DCRCFAIL标志清除位,软件设置该位以清除DCRCFAIL标志0位:CCRCFAILC-CCRCFAIL标志清除位,软件设置该位以清除CCRCFAIL标志SDIO_MASK(SDIO中断屏蔽寄存器)3191817保留CEATAENDSDIOITIERXDVALIETXDVALIERXFIFOETXFIFOERXFIFOFRXFIFOHFTXFIFOHERXACTIETXACTIECMDACTIEDBCKENDSTBITERRDATAENDCMDSENTIECMDRENDRXOVERRTXUNDERRDTIMEOUTCTIMEOUTDCRCFAIL23位:CEATAENDIE允许接收到CE-ATA命令完成信号产生中断,由软件设置/清除该位,允许/关闭在收到CE-ATA命令完成信号产生中断功能,定义: 0(收到CE-ATA命令完成信号时不产生中断),1(收到CE-ATA命令完成信号时产生中断)22位:SDIOITIE允许SDIO模式中断已接收中断(手动),定义:0(SDIO模式中断已接收不产生中断),1(SDIO模式中断已接收产生中断)21位:RXDVALIE接收FIFO中的数据有效产生中断(手动),定义:0(接收FIFO中的数据有效不产生中断),1(接收FIFO中的数据有效产生中断)20位:TXDVALIE发送FIFO中的数据有效产生中断,(手动),定义:0(发送FIFO中的数据有效不产生中断),1(发送FIFO中的数据有效产生中断)19位:RXFIFOEIE接收FIFO空产生中断,(手动),定义:0(接收FIFO空不产生中断),1(接收FIFO空产生中断)18位:TXFIFOEIE发送FIFO空产生中断,(手动),定义:0(发送FIFO空不产生中断),1(发送FIFO空产生中断)17位:RXFIFOFIE接收FIFO满产生中断,(手动),定义:0(接收FIFO满不产生中断),1(接收FIFO满产生中断)16位:TXFIFOFIE发送FIFO满产生中断,(手动),定义:0(发送FIFO满不产生中断),1(发送FIFO满产生中断)15位:RXFIFOHFIE接收FIFO半满产生中断,(手动),定义:0(接收FIFO半满不产生中断),1(接收FIFO半满产生中断)
14位:TXFIFOHE发送FIFO半空产生中断,(手动),定义:0(发送FIFO半空不产生中断),1(发送FIFO半空产生中断)13位:RXACTIE正在接收数据产生中断,(手动),定义:0(正在接收数据不产生中断),1(正在接收数据产生中断)12位:TXACTIE正在发送数据产生中断,(手动),定义:0(正在发送数据不产生中断),1(正在发送数据产生中断)11位:CMDACTIE正在传输命令产生中断,(手动),定义:0(正在传输命令不产生中断),1(正在传输命令产生中断)10位:DBCKENDIE数据块传输结束产生中断,(手动),定义:0(数据块传输结束不产生中断),1(数据块传输结束产生中断)9位:STBITERRIE起始位错误产生中断,(手动),定义:0(起始位错误不产生中断),1(起始位错误产生中断)8位:DATAENDIE数据传输结束产生中断,(手动),定义:0(数据传输结束不产生中断),1(数据传输结束产生中断)7位:CMDSENTIE命令已发送产生中断,(手动),定义:0(命令已发送不产生中断),1(命令已发送产生中断)6位:CMDRENDIE接收到响应产生中断,(手动),定义:0(接收到响应不产生中断),1(接收到响应产生中断)5位:RXOVERRIE接收FIFO上溢错误产生中断,(手动),定义:0(接收FIFO上溢错误不产生中断),1(接收FIFO上溢错误产生中断)4位:TXUNDERRIE发送FIFO下溢错误产生中断,(手动),定义:0(发送FIFO下溢错误不产生中断),1(接收FIFO上溢错误产生中断)3位:DTIMEOUTIE数据超时产生中断,(手动),定义:0(数据超时不产生中断),1(数据超时产生中断)2位:CTIMEOUTIE命令超时产生中断,(手动),定义:0(命令超时不产生中断),1(命令超时产生中断)1位:DCRCFAILIE数据块CRC检测失败产生中断,(手动),定义:0(数据块CRC检测失败不产生中断),1(数据块CRC检测失败产生中断)0位:CCRCFAILIE命令CRC检测失败产生中断,(手动),定义:0(命令CRC检测失败不产生中断),1(命令CRC检测失败产生中断)SDIO_FIFOCNT(SDIO FIFO计数器寄存器)319FIFOCOUNT[23:16]09876543FIFOCOUNT[15:0]23-0位:FIFOCOUNT将要写入FIFO或将要从FIFO读出数据字的数目,SDIO_FIFO(SDIO数据FIFO寄存器)319FIFODATA[31:16]09876543FIFODATA[15:0]31-0位:FIFODATA接收或发送FIFO数据,FIFO数据占据32个32位的字,地址为:(SDIO基址 + 0x80) 至 (SDIO基址 + 0xFC)1USB相关寄存器USB控制寄存器(USB_CNTR)CTRMPMAOVRMERRMWKUPMSUSPMRESETMSOFMESOFM保留RESUMESFUSPLPMODEPDMN15位:CTRM正确传输(CTR)中断屏蔽位,定义:0(正确传输(CTR)中断禁止),1(正确传输(CTR)中断使能,在中断寄存器的相应位被置1时产生中断)14位:PMAOVRM分组缓冲区溢出中断屏蔽位,定义:0(PMAOVR中断禁止),1(PMAOVR中断使能,在中断寄存器的相应位被置1时产生中断)13位:ERRM出错中断屏蔽位,定义:0(出错中断禁止),1(出错中断使能,在中断寄存器的相应位被置1时产生中断)12位:WKUPM唤醒中断屏蔽位,定义:0(唤醒中断禁止),1(唤醒中断使能,在中断寄存器的相应位被置1时产生中断)11位:SUSPM挂起中断屏蔽位,定义:0(挂起(SUSP)中断禁止),1(挂起(SUSP)中断使能,在中断寄存器的相应位被置1时产生中断)10位:RESETM-USB复位中断屏蔽位,定义:0(USB RESET中断禁止),1(USB RESET中断使能,在中断寄存器的相应位被置1时产生中断)9位:SOFM帧首中断屏蔽位,定义:0(SOF中断禁止),1(SOF中断使能,在中断寄存器的相应位被置1时产生中断)8位:ESOFM期望帧首中断屏蔽位,定义:0(ESOF中断禁止),1(ESOF中断使能,在中断寄存器的相应位被置1时产生中断)4位:RESUME唤醒请求,定义:设置此位将向PC主机发送唤醒请求。根据USB协议,如果此位在1ms到15ms内保持有效,主机将对USB模块实行唤醒操作3位:FSUSP强制挂起,当USB总线上保持3ms没有数据通信时,SUSP中断会被触发,此时软件必需设置此位,定义:0(无效)1(进入挂起模式,USB模拟收发器的
时钟和静态功耗仍然保持。如果需要进入低功耗状态(总线供电类的设备),应用程序需要先置位FSUSP再置位LP_MODE2位:LP_MODE低功耗模式,此模式用于在USB挂起状态下降低功耗。在此模式下,除了外接上拉电阻的供电,其他的静态功耗都被关闭,系统时钟将会停止或者降低 一定的频率来减少耗电。USB总线上的活动(唤醒事件)将会复位此位(软件也可以复位此位)。定义:0(非低功耗模式),1(低功耗模式)1位:PDWN断电模式,此模式用于彻底关闭USB模块。当此位被置位时,不能使用USB模块,定义:0(退出断电模式),1(进入断电模式)0位:FRES强制USB复位,定义:0(清除USB复位信号),1(对USB模块强制复位,类似于USB总线上的复位信号。USB模块将一直保持在复位状态下直到软件清除此 如果USB复位中断被使能,将产生一个复位中断)USB_ISTR(USB中断状态寄存器)CTRPMAOVRERRWKUPSUSPRESETSOFESOF保留DIREP_ID[3:0]15位:CTR正确的传输,此位在端点正确完成一次数据传输后由硬件置位。应用程序可以通过DIR和EP_ID位来识别是哪个端点完成了正确的数据传输。此位只读14位:PMAOVR分组缓冲区溢出,此位在微控制器长时间没有响应一个访问USB分组缓冲区请求时由硬件置位。USB模块通常在以下情况时置位该位:在接收过程中一 ACK握手分组没有被发送,或者在发送过程中发生了比特填充错误,在以上两种情况下主机都会要求数据重传。在正常的数据传输中不会产生PMAOVR中断。由 失败的传输都将由主机发起重传,应用程序就可以在这个中断的服务程序中加速设备的其他操作,并准备重传。但这个中断不会在同步传输中产生(同步传输 不支持重传)因此数据可能会丢失。此位应用程序可读可写,但只有写0有效,写1无效。13位:ERR出错,在下列错误发生时硬件会置位此位,NANS:无应答。主机的应答超时,CRC:循环冗余校验码错误。数据或令牌分组中的CRC校验出错 BST:位填充错误。PID,数据或CRC中检测出位填充错误。FVIO:帧格式错误。收到非标准帧(如EOP出现在错误的时刻,错误的令牌等)。 USB应用程序通常可以忽略这些错误,因为USB模块和主机在发生错误时都会启动重传机制。此位产生的中断可以用于应用程序的开发阶段, 可以用来监测USB总线的传输质量,标识用户可能发生的错误(连接线松,环境干扰严重,USB线损坏等)。 此位应用程序可读可写,但只有写0有效,写1无效。12位:WKUP唤醒请求,当USB模块处于挂起状态时,如果检测到唤醒信号,此位将由硬件置位。此时CTLR寄存器的LP_MODE位将被清零,同时USB_WAKEUP被激活, 通知设备的其他部分(如唤醒单元)将开始唤醒过程。此位应用程序可读可写,但只有写0有效,写1无效。11位:SUSP挂起模块请求,此位在USB线上超过3ms没有信号传输时由硬件置位,用以指示一个来自USB总线的挂起请求。USB复位后硬件立即使能对挂起信号的检测 但在挂起模式下(FSUSP=1)硬件不会再检测挂起信号直到唤醒过程结束。此位应用程序可读可写,但只有写0有效,写1无效。10位:RESET-USB复位请求,此位在USB模块检测到USB复位信号输入时由硬件置位。此时USB模块将复位内部协议状态机,并在中断使能下触发复位中断来响应复位 USB模块的发送和接收部分将被禁止,直到此位被清除。所有的配置寄存器不会被复位,除非应用程序对他们清零。这用来保证在复位后USB传输还可以立即 正确执行。但设备的地址和端点寄存器会被USB复位所复位。此位应用程序可读可写,但只有写0有效,写1无效。9位:SOF帧首标志,此位在USB模块检测到总线上的SOF分组时由硬件置位,标志一个新的USB帧的开始。中断服务程序可以通过检测SOF事件来完成与主机的1ms同步 并正确读出寄存器在收到SOF分组时的更新内容(此功能在同步传输时非常有意义)。此位应用程序可读可写,但只有写0有效,写1无效。8位:ESOF期望帧首标识位,此位在USB模块未收到期望的SOF分组时由硬件置位。主机应该每毫秒都发送SOF分组,但如果USB模块没有收到,挂起定时器将触发此中4位:DIR传输方向,此位在完成数据传输产生中断后由硬件根据传输方向写入。如果DIR=0,相应端点的CTR_TX位被置位,标志一个IN分组(数据从USB模块传输到 PC主机)的传输完成,如果DIR=1,相应端点的CTR_RX位被置位,标志一个OUT分组(数据从PC主机传输到USB模块)的传输完成。如果CTR_TX位同时也被置位 就标志同时存在挂起的OUT分组和IN分组。应用程序可以利用该信息访问USB_EPnR位对应的操作,它表示挂起中断传输方向的信息。该位为只读3-0位:EP_ID[3:0]端点ID,此位在USB模块完成数据传输产生中断后由硬件根据请求中断的端点号写入。如果同时有多个端点的请求中断,硬件写入优先级最高的 端点的优先级按以下方法定义:同步端点和双缓冲批量端点具有高优先级,其他的端点为低优先级。如果多个同优先级的端点请求中断,则根据端点号 来确定优先级,即端点0具有最高优先级,端点号越小,优先级越高。应用程序可以通过上述的优先级策略顺序处理端点的中断请求。该位为只读。USB帧编号寄存器(USB_FNR)LSOF[1:0]FN[10:0]RXDPRXDMLCK15位:RXDP(D+状态位),此位用于观察USB D+数据线的状态,可在挂起状态下检测唤醒条件的出现14位:RXDM(D-状态位),此位用于观察USB D-数据线的状态,可在挂起状态下检测唤醒条件的出现。13位:LCK锁定位,USB模块在复位或唤醒序列结束后会检测SOF分组,如果连续检测到至少2个SOF分组,则硬件会置位此位。此位一旦锁定,帧计数器将停止计数, 一直等到USB模块复位或总线挂起时再恢复计数
12位:LSOF[1:0]帧首丢失标志位,当ESOF事件发生时,硬件会将丢失的SOF分组的数目写入此位。如果再次收到SOF分组,引脚会清除此位10-0位:此部分记录了最新收到的SOF分组中的11位帧编号。主机每发送一个帧,帧编号都会自加,这对于同步传输非常有意义。此部分发生SOF中断时更新USB_DADDR(USB设备地址寄存器)保留EFADD[6:0]7位:EF-USB模块使能位,此位在需要使能USB模块时由应用程序置位。如果此位为0,USB模块将停止工作,忽略所有寄存器的设置,不响应任何USB通信。6-0位:ADD[6:0]设备地址,此位记录了USB主机在枚举过程中为USB设备分配的地址值。该地址值和端点地址(EA)必需和USB令牌分组中的地址信息匹配, 才能在指定的端点进行正确的USB传输USB_BTABLE(USB分组缓冲区描述表地址寄存器)BTABLE[15:3]保留15-3位:BTABLE缓冲表,此位记录分组缓冲区描述表的起始地址。分组缓冲区描述表用来指示每个端点的分组缓冲区地址和大小,按8字节对齐(即最低3位为000)。 每次传输开始时,USB模块读取相应端点所对应的分组缓冲区描述表获得缓冲区地址和大小信息USB_EPnR(USB 端点n寄存器), n=[0..7]CTR_RXDTOG_RXSTAT_RX[1:0]SETUPEPTYPE[1:0]EP_KINDCTR_TXDTOG_TXSTAT_TX[1:0]EA[3:0]15位:CTR_RX正确接收标志位(可读可写,写0有效,写1无效)。此位在正确接收到OUT或SETUP分组时由硬件置位,应用程序只能对此位清零。如果CTRM位已置位 相应的中断会产生。收到的是OUT分组还是SETUP分组可以通过下面描述的SETUP位确定。以NAK或STALL结束的分组和出错的传输不会导致此位置位, 因为没有真正传输数据14位:DTOG_RX用于数据接收的数据翻转位(可读可写,写0有效,写1无效),对于非同步端点,此位由硬件设置,用于标记希望接收的下一个数据分组的Toggle位 (0=DATA0,1=DATA1)。在接收到PID(分组ID)正确的数据分组之后,USB模块发送ACK握手分组,并翻转此位。对于控制端点,硬件在收到SETUP分组后清除此 对于双缓冲端点,此位还用于支持双缓冲区的交换。对于同步端点,由于仅发送DATA0,因此此位仅用于支持双缓冲区的交换,而不需进行翻转。 同步传输不需要握手分组,因此硬件在收到数据分组后立即设置此位。应用程序可以对此位进行初始化(对于非控制端点,初始化是必需的), 或者翻转此位用于特殊用途13-12位:STAT_RX[1:0]用于数据接收的状态位,此位用于指示端点当前的状态,表157列出了端点的所有状态。当一次正确的OUT或SETUP数据传输完成后(CTR_RX= 硬件会自动设置此位为NAK状态,使应用程序有足够的时间在处理完当前传输的数据后,响应下一个数据分组。 对于双缓冲批量端点,由于使用特殊的传输流量控制策略,因此根据使用的缓冲区状态控制传输状态。对于同步端点, 由于端点状态只能是有效或禁用,因此硬件不会在正确的传输之后设置此位。如果应用程序将此位设为STALL或者NAK,USB模块响应的操作是未定义的11位:SETUP-SETUP分组传输完成标志位,(只读),此位在USB模块收到一个正确的SETUP分组后由硬件置位,只有控制端点才使用此位。在接收完成后(CTR_RX=1 应用程序需要检测此位以判断完成的传输是否是SETUP分组。为了防止中断服务程序在处理SETUP分组时下一个令牌分组修改了此位,只有CTR_RX为0时, 此位才可以被修改,CTR_RX为1时不能修改。10-9位:EP_TPYE[1:0]端点类型位,此位用于指示端点当前的类型,所有的端点类型都在表158中列出。所有的USB设备都必需包含一个地址为0的控制端点,如果需 可以有其他地址的控制端点。只有控制端点才会有SETUP传输,其他类型的端点无视此类传输。SETUP传输不能以NAK或STALL分组响应,如果控制端点在收 SETUP分组时处于NAK状态,USB模块将不响应分组,就会出现接收错误。如果控制端点处于STALL状态,SETUP分组会被正确接收,数据会被正确传输,并产 一个正确传输完成的中断。控制端点的OUT分组安装普通端点的方式处理。批量端点和中断端点的处理方式非常类似,仅在对EP_KIND位的处理上有差别。8位:EP_KIND端点特殊类型位,此位的需要和EP_TYPE位配合使用,具体的定义请参考表159。DBL_BUF:应用程序设置此位能使能批量端点的双缓冲功能。 STATUS_OUT:应用程序设置此位表示USB设备期望主机发送一个状态数据分组,此时,设备对于任何长度不为0的数据分组都响应STALL分组。 此功能仅用于控制端点,有利于提供应用程序对于协议层错误的检测。如果STATUS_OUT位被清除,OUT分组可以包含任意长度的数据。7位:CTR_TX正确发送标志位,此位由硬件在一个正确的IN分组传输完成后置位。如果CTRM位已被置位,会产生相应的中断。应用程序需要在处理完该事件后清除此 在IN分组结束时,如果主机响应NAK或STALL则此位不会被置位,因为数据传输没有成功。此位应用程序可读可写,但写0有效,写1无效。6位:DTOG_RX发送数据翻转位,对于非同步端点,此位用于指示下一个要传输的数据分组的Toggle位(0=DATA0,1=DATA1)。在一个成功传输的数据分组后, 如果USB模块接收到主机发送的ACK分组,就会翻转此位。对于控制端点,USB模块会在收到正确的SETUP PID后置位此位。对于双缓冲端点,此位还可用于支持


发布评论