Stm32f103寄存器整理

313029282726252423222120191817

16151413121110987654321

DBP PVDE CSBF CWUF PDDS LPDS

313029282726252423222120191817

16151413121110987654321

EWUP PVDO SBF WUF

151413121110987654321

15-0位:备份数据由用户来写数据。注:BKP——DRx寄存器不会被系统复位,电源复位,待机唤醒所复位 它可以由备份域复位来复位或(如果入侵检测引脚TAMPER功能被开启时)由浸入引脚事件复位

BKP BKP__RTCCR RTCCR((RTC RTC时钟校准寄存器时钟校准寄存器时钟校准寄存器))

0位:WUF唤醒标志(该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)的CWUF位清除) 定义:0(没有唤醒事件),1(在WKUP引脚上发生唤醒事件或出现RTC脑中事件)

注:当WKUP引脚已经是高电平时,在(通过设置EWUP位)使能WKUP引脚时,会检测到一个额外事件

BKP——DRx BKP——DRx((x =1......101010)()()(备份数据寄存器备份数据寄存器备份数据寄存器))

注:复位时清除这一位

2位:PVDO-PVD输出(当PVD被PVDE位使能后该位才有效)定义:0(VDD/VDDA高于PLS[2-0]选定的PVD阀值),1(VDD/VDDA低于PLS[2-0]选定的PVD阀值) 注:在待机模式下PVD被停止,因此,待机模式后或复位后,直到设置PVDE位之前,该位为0

1位:SBF待机标志位(该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)的CSBUF位清除)定义:0(不在待机)1(已待机)3位:CSBF清除待机位(始终输出为0)定义:0(无功效),1(清除SBF待机位(写)

2位:CWUF清除唤醒位(始终输出为0)定义:0(无功效),1(2个系统时钟周期后清除WUF唤醒位(写)

1位:PDDS掉电深睡眠(与LPDS位协同操作)定义:0(当CPU进入深睡眠时进入停机模式,调压器状态由LPDS位控制),1(CPU进入深睡眠时进入待机模式)8位:EWUP使能WKUP引脚。定义:0(WKUP为通用IO),1(用于待机唤醒模式,WKUP引脚被强置为输入下拉的配置(WKUP引脚上的上升沿将系统从待机模式唤醒)0位:LPDS深睡眠下的低功耗(PDDS=0时,与PDDS位协同操作)定义:0(在待机模式下电压调压器开启),1(在待机模式下电压调压器处于低功耗模式)

PWR PWR__CSR CSR((电源控制电源控制//状态寄存器状态寄存器))

保留

保留保留7-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.9v)8位:DBP取消后备区域写保护。复位值为0。定义:0为禁止写入,1为允许写入。注:如果rtc时钟是HSE/128,必须保持为1

4位:PVDE电源电压检测器(PVD)使能。定义:0(禁止PVD),1(开启PVD)

PWR PWR__CR CR((电源控制寄存器电源控制寄存器))

保留

保留PLS[2:0]PWR PWR电源相关寄存器电源相关寄存器

1514131211109876543210

ASOS ASOE CCO

保留CAL[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断电,该位清除

1514131211109876543210

TPAL TPE 1514131211109876543210

TIF TEF TPIE CTI CTE 1位:CTI清除侵入检测中断(只能写入,读出值为0)定义:0(无效)1(清除侵入检测中断和TIF侵入检测中断标志)

9位:TIF侵入中断标志(当检测有侵入事件且TPIE为1时,此为硬件置1,通过向CTI位写1来清除标志位(同时也清除中断)。如果TPIE被清除,此位也会被清除。 注:1、侵入检测无法将系统内核从低功耗模式唤醒,2、仅当系统复位或由待机模式唤醒后才复位该位

定义:0(无侵入),1(检测到侵入)注:仅当系统复位或由待机模式唤醒后才复位该位

8位:TEF侵入事件标志(当检测到侵入事件时此位由硬件置1。通过向CTE位写1可清除此标志位)定义:0(无侵入事件),1(有侵入事件)

2位:TPIE:允许侵入TAMPER引脚中断。定义0(禁止侵入检测中断),1(允许(BKP_CR寄存器TPE位也必须置1) 注:侵入事件会复位所有的BKP_DRx寄存器。只要TEF为1,所有的BKP_DRx寄存器就一直保持复位状态。当此位被置1时,若对BKP_DRx写操作,则不会保存。BKP BKP__CR CR((备份控制寄存器备份控制寄存器))

保留

保留保留

1位:TPAL侵入检测TAMPER引脚有效电平。定义:0(检测TAMPER脚高电平清除备份数据)1(检测TAMPER脚低电平清除备份数据)2位:TPE启动入侵检测TAMPER引脚。定义:0(TAMPER脚为普通IO),1(开启检测)

注:TPAL、TPE同时置为可用,但同时清零则会出问题。所以推荐在TPE为0时才改变TPAL位状态。

BKP BKP__CSR CSR((备份控制备份控制//状态寄存器状态寄存器))

6-0位:CAL校准值。表示在每2的20次方个时钟脉冲内将有多少个脉冲被跳过。这可用来对RTC进行校准,以1000000/(2的20次方比例减慢时钟)可用被减慢0-121ppm

31302928

27

262524232221

2019181716

PLLRD Y PLLO N CSSO N

HSEB Y P

HSERD Y

HSEO N

15

14

13

121110987

6543210

保留HSIRD Y HSIO N

31302928272625242322212019181716

保留OT G FSPRE PLL X TPRE PLLSRC

151413121110987654321015-8位:HSICAL[7:0]-内部高速时钟校准。系统启动时,这些位被自动初始化。

7-3位:HSITRIM[4:0]-内部高速时钟调整(软件控制,与HSICAL 叠加,相当于手动微调)

1位:HSIRD Y 内部高速时钟就绪标志硬件置1,在HSIO N 清零后,该位需要6个内部8M 振荡周期清零。定义:0(没有就绪),1(有就绪)

19位:CSSO N 时钟安全系统使能(由软件置1或清零)定义:0(时钟监测器关闭),1(如果外部4-16M 振荡器就绪,时钟监测器开启)

18位:HSEB Y P外部高速时钟旁路。定义:0(晶振4-16M),1(有源晶振25M)。调试模式下由软件控制。只有在4-16M 振荡器关闭情况下,才能写入该位。17位:HSERD Y 外部高速时钟就绪标志(自动)在HSEO N 位清零后,需6个外部4-25M 振荡器周期清零。定义:0(4),

16位:HSEO N 外部高速时钟使能(软件控制)定义:0(HSE关闭),1(HSE开启)。待机或停机模式硬件清零,当用作系统系统时钟时,该位不能清零。RCC RCC__CR CR((时钟控制寄存器时钟控制寄存器))

0位:HSIO N 内部高速时钟使能(软件控制)当从待机或停机返回用或外部振荡故障时由硬件置1。若使用内部时钟做系统时钟则不能清零。定义:0(关),1(开)

0位:CTE清除侵入检测事件(只能写入,读出值为0)定义:0(无效)1(清除TEF侵入检测事件标志(并复位侵入检测器)

保留保留HSICAL[7:0]HSITRIM[4:0]

25位:PLLRD Y -PLL时钟就绪标志(PLL 锁定后由硬件置1)定义:0(未锁定),1(锁定)

24位:PLLO N -PLL使能(手动)定义:0(PLL关闭),1(PLL使能)。进入待机或停机模式时,该位由硬件清零当PLL用作系统始终时,该位不能被清零。RCC RCC__CFGR CFGR((时钟配置寄存器时钟配置寄存器))

保留MCO[3:0]PLLMUL[3:0]PPRE2[2:0]PPRE1[2:0] 定义:00xx(无输出),0100(系统时钟sys c lk 输出),0101(内部8M输出),0110(外部25M输出),0111(PLL时钟2分频输出),1000(PLL2输出) 1001(PLL3时钟2分频输出),1010(X T1外部25M输出(为以太网),1011(PLL3时钟输出)

HPRE[3:0]SWS[1:0]SW[1:0]27-24位:MCO 微控制器时钟输出(手动)注:该时钟输出在启动和切换MCO时钟源时可能会被截断。在系统时钟作为MCO引脚时,需保证输出不高于50M

ADCPRE[1:0]22位:OT G FSPRE 全速USBOT G预分频(手动)在RCC_APB1E N R寄存器中使能全速OT G 时钟之前,必须保证该位已经有效,如OT G 时钟被使能则不能清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位:PLL X TPRE-PREDIV1分频因子低位(软件控制)与RCC_CF G R2的0位为同一位。如果RCC_CF G R2[3:1]为000,则该位控制PREDIV1对输入时钟进行2分频(PLL X PRE=1), 或不对输入时钟分频(PLL X PRE=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分频)

7-4位:HPRE[3:0]-AHB 预分频(手动)定义:0xxx (S Y SCLK不分频),1000(2分频),1001(4分频),1010(8分频),1011(16分频)

1100(64分频),1101(128分频),1110(256分频),1111(512分频).注:AHB时钟预分频大于1时,必须开预取缓冲器。当使用以太网模块时,频率至少25M 10-8位:PPRE1[2:0]-APB1预分频(手动)定义:0xx(HCLK不分频),100(HCLK2分频),101(HCLK4分频),110(HCLK8分频),111(HCLK16分频),注小于363-2位:SWS[1:0]系统时钟切换状态(自动)定义:00(HIS作为系统时钟),01(HSE 做系统时钟),10(PLL 做系统时钟),11(不可用)

RCC RCC时钟相关寄存器时钟相关寄存器

313029282726252423222120191817

16CSSC PLLRD Y C HSERD Y C HISRD Y C LSERD Y C LSIRD Y C

151413121110987654321

PLLRD Y IE HSERD Y IE HSIRD Y IE LSERD Y IE LSIRD Y IE CSSF PLLRD Y F HSERD Y F HSIRD Y F LSERD Y F LSIRD Y F

313029282726252423222120191817

16151413121110987654321

ADC3RST USART1RST TIM8RST SPI1RST TIM1RST ADC2RST ADC1RST IOP G RST IOPFRST IOPERST IOPDRST IOPCRST IOPBRST IOPARST 保留AFIORST 3位:IOPBRST-IOPB 接口复位(手动)定义:0(无作用),1(复位IOPB 接口)

7位:IOPFRST-IOPF 接口复位(手动)定义:0(无作用),1(复位IOPF 接口)6位:IOPERST-IOPE 接口复位(手动)定义:0(无作用),1(复位IOPE 接口)5位:IOPDRST-IOPD 接口复位(手动)定义:0(无作用),1(复位IOPD 接口)4位:IOPCRST-IOPC 接口复位(手动)定义:0(无作用),1(复位IOPC 接口)11位:TIM1RST-TIM1接口复位(手动)定义:0(无作用),1(复位TIM1接口)10位:ADC2RST-ADC2接口复位(手动)定义:0(无作用),1(复位ADC2接口)9位:ADC1RST-ADC1接口复位(手动)定义:0(无作用),1(复位ADC1接口)8位:IOP G RST-IOP G接口复位(手动)定义:0(无作用),1(复位IOP G接口)15位:ADC3RST-ADC3接口复位(手动)定义:0(无作用),1(复位ADC3接口)

14位:USART1RST-USART1接口复位(手动)定义:0(无作用),1(复位USART1接口)13位:TIM8RST-TIM8接口复位(手动)定义:0(无作用),1(复位TIM8接口)12位:SPI1RSTRST-SPI1接口复位(手动)定义:0(无作用),1(复位SPI1接口)保留

4位:PLLRD Y F-PLL3就绪中断标志(自动置1,手动PLLRD Y C清除)定义:0(无PLL上锁产生的时钟就绪中断),1(PLL上锁导致中断)3位:HSERD Y F-HSE就绪中断标志(自动置1,手动HSERD Y C清除)0(无中断),1(有中断)9位:LSERD Y IE-LSE就绪中断使能(手动)定义:0(LSE就绪中断关闭),1(LSE就绪中断使能)8位:LSIRD Y IE-LSI就绪中断使能(手动)定义:0(LSI就绪中断关闭),1(LSI就绪中断使能)

7位:CSSF时钟安全系统中断标志(自动置1,手动CSSC清除)定义:0(无HSE时钟失效产生的中断),1(HSE时钟失效产生中断)RCC RCC__APB APB22RSTR RSTR((APB APB22外设复位寄存器外设复位寄存器))

0位:LSIRD Y F-LSI就绪中断标志(自动置1,手动HSERD Y C清除)0(无中断),1(有中断)

1位:LSERD Y F-LSE就绪中断标志(自动置1,手动HSERD Y C清除)0(无中断),1(有中断)2位:HSIRD Y F-HSI就绪中断标志(自动置1,手动HSERD Y C清除)0(无中断),1(有中断)1-0位:SW系统时钟切换(手动,自动,自动时时钟安全须开启)定义:00(HIS 做系统时钟),01(HSE 做系统时钟),10(PLL 做系统时钟),11(不可用)

12位:PLLRD Y IE-PLL就绪中断使能(手动)定义:0(PLL就绪中断关闭),1(PLL就绪中断使能)10位:HSIRD Y IE-HSI就绪中断使能(手动)定义:0(HSI就绪中断关闭),1(HSI就绪中断使能)11位:HSERD Y IE-HSE就绪中断使能(手动)定义:0(HSE就绪中断关闭),1(HSE就绪中断使能)保留保留保留RCC RCC__CIR CIR((时钟中断寄存器时钟中断寄存器))

保留16位:LSIRD Y C清除HSE就绪中断(手动)定义:0(无作用),1(清除LSI就绪中断标志位LSIRD Y F)18位:HSIRD Y C清除HSE就绪中断(手动)定义:0(无作用),1(清除HSI就绪中断标志位HSIRD Y F)17位:LSERD Y C清除HSE就绪中断(手动)定义:0(无作用),1(清除LSE就绪中断标志位LSERD Y F)23位:CSSC清除时钟安全系统中断(软件置1)定义:0(无作用),1、清除CSSF 安全系统中断标志20位:PLLRD Y C清除PLL就绪中断(手动)定义:0(无作用),1(清除PLL就绪中断标志位PLLRD Y F)19位:HSERD Y C清除HSE就绪中断(手动)定义:0(无作用),1(清除HSE就绪中断标志位HSERD Y F)

31302928272625242322212019181716

DACRST PWRRST BKPRST 保留CA N RST 保留USBRST I2C2RST I2C1RST UART5RST UART4RST UART3RST UART2RST 保留

15141312111098765

43210

SPI3RST SPI2RST WWD G RST TIM7RST

TIM6RST TIM5RST TIM4RST TIM3RST TIM2TST

3130292827262524232221

20

1918171615141312111098765

43210

SDIOE N 保留FSMCE N 保留CRCE N 保留

FLITFE N

保留

SRAME N

DMA2E N

DMA1E N

3130292827262524232221

2019181716

RCC RCC__APB APB22ENR ENR((APB APB22外设时钟使能寄存器外设时钟使能寄存器))

2位:TIM4RST-TIM4复位接口(手动)定义:0(无作用),1(复位TIM4接口)1位:TIM3RST-TIM3复位接口(手动)定义:0(无作用),1(复位TIM3接口)0位:TIM2RST-TIM2复位接口(手动)定义:0(无作用),1(复位TIM2接口)

RCC RCC__AHBENR AHBENR((外设时钟使能寄存器外设时钟使能寄存器))

10位:SDIOE N -SDIO时钟使能(手动)定义:0(时钟关闭),1(时钟开启)8位:FSMCE N -FSMC时钟使能(手动)定义:0(时钟关闭),2(时钟开启)2位:SRAME N -SRAM时钟使能(手动)定义:0(时钟关闭),5(时钟开启)1位:DMA2E N -DMA2时钟使能(手动)定义:0(时钟关闭),6(时钟开启)21位:I2C1RST-I2C1复位接口(手动)定义:0(无作用),1(复位I2C1接口)20位:UART5RST-UART5复位接口(手动)定义:0(无作用),1(复位UART5接口)19位:UART4RST-UART4复位接口(手动)定义:0(无作用),1(复位UART4接口)0位:DMA1E N -DMA1时钟使能(手动)定义:0(时钟关闭),7(时钟开启)

保留5位:TIM7RST-TIM7复位接口(手动)定义:0(无作用),1(复位TIM7接口)4位:TIM6RST-TIM6复位接口(手动)定义:0(无作用),1(复位TIM6接口)3位:TIM5RST-TIM5复位接口(手动)定义:0(无作用),1(复位TIM5接口)保留

4位:FLITFE N -FLITF时钟使能(手动)定义:0(时钟关闭),4(时钟开启)11位:WWD G RST-WWD G 复位接口(手动)定义:0(无作用),1(复位WWD G接口)2位:IOPARST-IOPA 接口复位(手动)定义:0(无作用),1(复位IOPA 接口)0位:AFIORST 辅助功能IO复位(手动)定义:0(无作用),1(复位辅助功能)

RCC RCC__APB APB11RSTR RSTR((APB APB11外设复位寄存器外设复位寄存器))

18位:UART3RST-UART3复位接口(手动)定义:0(无作用),1(复位UART3接口)17位:UART2RST-UART2复位接口(手动)定义:0(无作用),1(复位UART2接口)15位:SPI3RST-SPI3复位接口(手动)定义:0(无作用),1(复位SPI3接口)14位:SPI2RST-SPI2复位接口(手动)定义:0(无作用),1(复位SPI2接口)22位:I2C2RST-I2C2复位接口(手动)定义:0(无作用),1(复位I2C2接口)28位:PWRRST电源复位接口(手动)定义:0(无作用),1(复位PWR 接口)27位:BKPRST-备份复位接口(手动)定义:0(无作用),1(复位BKP 接口)保留保留保留29位:DACRST-DAC复位接口(手动)定义:0(无作用),1(复位DAC 接口)25位:CA N RST-CA N 复位接口(手动)定义:0(无作用),1(复位CA N接口)23位:USBRST-USB复位接口(手动)定义:0(无作用),1(复位USB 接口)6位:CRCE N -CRC时钟使能(手动)定义:0(时钟关闭),3(时钟开启)

151413121110987654

3

2

10

ADC3E N USART1E N TIM8E N SPI1E N TIM1E N ADC2E N ADC1E N IOP G E N IOPFE N IOPEE N IOPDE N IOPCE N IOPBE N IOPAE N 保留AFIOE N

31302928272625242322212019181716

DACE N PWRE N BKPE N 保留CA N E N 保留USBE N I2C2E N I2C1E N UART5E N UART4E N UART3E N UART2E N 保留

15141312111098765

43210

SPI3E N SPI2E N WWD G E N TIM7E N

TIM6E N TIM5E N TIM4E N TIM3E N TIM2E N

4位:TIM6RST-TIM6时钟使能(手动)定义:0(时钟关闭),1(时钟开启)3位:TIM5RST-TIM5时钟使能(手动)定义:0(时钟关闭),1(时钟开启)2位:TIM4RST-TIM4时钟使能(手动)定义:0(时钟关闭),1(时钟开启)

5位:TIM7RST-TIM7时钟使能(手动)定义:0(时钟关闭),1(时钟开启)19位:UART4RST-UART4时钟使能(手动)定义:0(时钟关闭),1(时钟开启)14位:SPI2RST-SPI2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)18位:UART3RST-UART3时钟使能(手动)定义:0(时钟关闭),1(时钟开启)17位:UART2RST-UART2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)15位:SPI3RST-SPI3时钟使能(手动)定义:0(时钟关闭),1(时钟开启)22位:I2C2RST-I2C2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)21位:I2C1RST-I2C1时钟使能(手动)定义:0(时钟关闭),1(时钟开启)20位:UART5RST-UART5时钟使能(手动)定义:0(时钟关闭),1(时钟开启)11位:WWD G RST-WWD G 时钟使能(手动)定义:0(时钟关闭),1(时钟开启)28位:PWRRST电源时钟使能(手动)定义:0(时钟关闭),1(时钟开启)27位:BKPRST-备份时钟使能(手动)定义:0(时钟关闭),1(时钟开启)25位:CA N RST-CA N 时钟使能(手动)定义:0(时钟关闭),1(时钟开启)23位:USBRST-USB时钟使能(手动)定义:0(时钟关闭),1(时钟开启)保留保留29位:DACRST-DAC时钟使能(手动)定义:0(时钟关闭),1(时钟开启)2位:IOPAE N :IOPA 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)0位:AFIOE N :AFIO 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)

保留RCC RCC__APB APB11ENR ENR((APB APB11外设时钟使能寄存器外设时钟使能寄存器))

6位:IOPEE N :IOPE 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)3位:IOPBE N :IOPB 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)5位:IOPDE N :IOPD 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)4位:IOPCE N :IOPC 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)7位:IOPFE N :IOPF 接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)8位:IOP G E N :IOP G接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)12位:SPI1E N :SPI1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)11位:TIM1E N :TIM1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)10位:ADC2E N :ADC2接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)9位:ADC1E N :ADC1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)15位:ADC3E N :ADC3接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)14位:USART1E N :USART1接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)13位:TIM8E N :TIM8接口时钟使能(手动)定义:0(时钟关闭),1(时钟开启)保留

313029282726252423222120191817

16BDRST

151413121110987654321

RTCE N LSEB Y P LSERD Y LSEO N

313029282726252423222120191817

16LPWRRSTF WWD G RSTF IWD G RSTF SFTRSTF PORRSTF PI N RSTF 保留RMVF

151413121110987654321

LSIRD Y LSIO N

0位:TIM2RST-TIM2时钟使能(手动)定义:0(时钟关闭),1(时钟开启)

1位:TIM3RST-TIM3时钟使能(手动)定义:0(时钟关闭),1(时钟开启)RCC RCC__BDCR BDCR((备份时钟控制寄存器备份时钟控制寄存器))

保留保留RTCSEL[1:0]保留16位:BDRST备份域软件复位(手动)定义:0(复位未激活),1(复位整个备份域)15位:RTCE N -RTC时钟使能(手动)定义:0(RTC时钟关闭),1(RTC时钟开启)

2位:LSEB Y P低速时钟振荡器旁路(手动)只有在外部振荡器关闭时,才能写入该位低速振荡器周期才被清零。定义:0(无旁路),1(有旁路)RCC RCC__CSR CSR((RCC RCC时钟控制时钟控制时钟控制//状态寄存器状态寄存器))

9-8位:RTCSEL[1:0]RTC时钟源选择(手动)一旦选定,则直到下次后被域被复位前不能改变,可通过设置BDRST来清除 定义:00(无时钟),01(LSE为时钟),10(LSI为时钟),11(HSE 振荡器在128分频后做时钟)

1位:LSERD Y 外部低速LSE就绪(自动)在LSEO N 被清零后,该位需要6个低速周期才被清零。定义:0(外部振荡器未就绪),1(外部振荡器就绪)0位:LSEO N 外部低速振荡器使能(软件)定义:0(外部振荡器关闭),1(外部振荡器开启)

保留保留31位:LWRRSTF低功耗复位标志(自动),由软件通过写RMVF位清除,定义:0(无低功耗管理复位发生),1(发生低功耗管理复位)30位:WWD G RSTF 窗口看门狗复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)24位:RMVF清除复位标志(手动),定义:0(无作用),1(清除复位标志)

1位:LSIRD Y 内部低速振荡器就绪(自动),在LSIO N 清零后,3个内部40K 振荡周期后LSIRD Y 被清零,定义:0(内部未就绪),1(内部RC 振荡器开启)

29位:IWD G RSTF 窗口看门狗复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)28位:SFTRSTF 软件复位标志(自动)由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)

27位:PORRSTF上电掉电复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)26位:PI N RSTF-N RST引脚复位标志(自动),由软件通过写RMVF位清除,定义:0(无复位发生),1(有复位发生)

313029282726252423222120191817161514131211109876543210

31302928272625242322212019181716151413121110987654321031302928272625242322212019181716

1514131211109876543210

IDR15IDR14IDR13IDR12IDR11IDR10IDR9IDR8IDR7IDR6IDR5IDR4IDR3IDR2IDR1IDR031302928272625242322212019181716

1514131211109876543210

ODR15ODR14ODR13ODR12ODR11ODR10ODR9ODR8ODR7ODR6ODR5ODR4ODR3ODR2ODR1ODR031302928272625242322212019181716

BR15BR14BR13BR12BR11BR10BR9BR8BR7BR6BR5BR4BR3BR2BR1BR0

1514131211109876543210

BS15BS14BS13BS12BS11BS10BS9BS8BS7BS6BS5BS4BS3BS2BS1BS031302928272625242322212019181716

15-0位:B sy 设置端口x的位,这些位只能写入并只能以字的形式操作,定义:0(对应的ODR y 位不产生影响),1(设置对应ODR y 位为1)注:如果同时设置了B sy 和Br y 的对应位,B sy 位起作用。

GPIOx GPIOx__BRR BRR((端口位清除寄存器端口位清除寄存器x x =A…E A…E))

保留

GPIOx GPIOx__ODR ODR((端口输出数据寄存器端口输出数据寄存器x x =A…E A…E))

15-0位:ODR y端口输出数据(y =15-0)这些位可读可写并只能以字的形式操作。注:对G PIOx_BSRR,可以分别的对各个ODR位进行独立的设置/清除。

31-16位:BR y 清除端口x的位,这些位只能写入并只能以字的形式操作,定义:0(对应的ODR y 位不产生影响),1(清除对应ODR y 位为0)0位:LSIO N 内部低速振荡器使能(软件),定义:0(内部振荡器关闭),1(内部振荡器开启)

GPIOx GPIOx__CRL CRL((端口配置低寄存器端口配置低寄存器x x =A…E A…E))

MODE1[1:0]C N F0[1:0]MODE0[1:0]MODE5[1:0]C N F5[1:0]C N F4[1:0]C N F7[1:0]MODE7[1:0]C N F6[1:0]MODE6[1:0]GPIOx GPIOx__CRH CRH((端口配置高寄存器端口配置高寄存器x x =A…E A…E))

31-0双位:MODE 端口x的模式位(软件控制0-7管脚)定义:00(输入模式(复位后模式),01(最大10M输入),10(最大2M输出),11(最大50M输出)

在输出模式(MODE[1:0]>00)下:00(通用推挽),01(通用开漏),10(复用推挽),11(复用开漏)

C N F15[1:0]MODE15[1:0]C N F14[1:0]MODE14[1:0]C N F13[1:0]MODE13[1:0]C N F12[1:0]MODE12[1:0]C N F11[1:0]MODE11[1:0]C N F10[1:0]MODE10[1:0]C N F9[1:0]MODE9[1:0]C N F8[1:0]MODE8[1:0]GPIO GPIO输入输出相关寄存器输入输出相关寄存器

31-0单位:C N F 端口x配置位(软件控制0-7管脚)定义:在输入模式[1:0]=00下:00(模拟输入),01(浮空输入(复位后状态),10(上/下拉输入),11(保留)MODE4[1:0]C N F3[1:0]MODE3[1:0]C N F2[1:0]MODE2[1:0]C N F1[1:0]

31-0单位:C N F 端口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 GPIOx__IDR IDR((端口输入数据寄存器端口输入数据寄存器x x =A…E A…E))

保留

15-0位:IDR y端口输入数据(y =15-0)这些位为只读并只能以16位的形式读出。读出的值为对应IO的状态。

GPIOx GPIOx__BSRR BSRR((端口位设置端口位设置//清除寄存器清除寄存器x x =A…e A…e))

151413121110987654321

BR15BR14BR13BR12BR11BR10BR9BR8BR7BR6BR5BR4BR3BR2BR1BR0313029282726252423222120191817

16LCKK

151413121110987654321

LCK15LCK14LCK13LCK12LCK11LCK10LCK9LCK8LCK7LCK6LCK5LCK4LCK3LCK2LCK1LCK0313029282726252423222120191817

16151413121110987654321

EVOE

31302928272625242322212019181716

ADC2RE G ADC2I NJ ADC1RE G ADC1I NJ TIM5CH4

1514131211109876543210

PD01TIM4USART3USART1I2C SPI1USART3_REMAP CA N _REMAP[1:0]TIM3_REMAP TIM2_REMAP TIM1_REMAP 1000(选择Px8),1001(选择Px9),1010(选择Px10),1011(选择Px11),1100(选择Px12),1101(选择Px13),1110(选择Px14),1111(选择Px15)

AFIO AFIO__EVCR EVCR((事件控制寄存器事件控制寄存器))

AFIO AFIO__MAPR MAPR((复用重映射和调试复用重映射和调试IO IO IO配置寄存器配置寄存器配置寄存器))

保留SW J _CF G [2:0]保留7位:EVOE允许事件输出(手动)当设置该位后,C o rt e x的EVE N OUT将连接到由PORT[2:0]和PI N [3:0]选定的IO 口

6-4位:PORT[2:0]端口选择,选择用于输出C o rt e x的EVE N TOUT信号的端口。定义:000(PA),001(PB),010(PC),011(PD),100(PE)3-0位:PI N [3:0]引脚选择,选择用于输出C o rt e x的EVE N TOUT信号引脚,

定义:0000(选择Px0),0001(选择Px1),0010(选择Px2),0011(选择Px3),0100(选择Px4),0101(选择Px5),0110(选择Px6),0111(选择Px7)

16位:LCKK 锁键,该位可随时读出,它只可通过锁键写入序列修改,定义:0(端口配置锁键位激活),1(端口配置锁位被激活,下次复位前G PIOx_LCKR被锁住) 锁键写序列:写1-》写0-》写1-》读0-》读1 最后一个读可省略,但可以用来确认锁键已被激活

保留

注:在操作锁键的写入序列时,不能改变LCK[15-0]的值,且操作写入序列中的任何错误将不能激活锁键

15-0位:LCK y端口x的锁位y (y =0-15)这些位可读可写但只能在LCKK位为0时写入,定义:0(不锁定端口的配置),1(锁定端口的配置)

保留PORT[2:0]PI N [3:0]保留

15-0位:Br y 清除端口x的位(y =15-0)这些位只能写入并只能以字的形式操作,定义:0(对对应位无影响),1(清除对应位的ODR位为0)

GPIOx GPIOx__LCKR LCKR((端口配置锁定寄存器端口配置锁定寄存器x x =A…E A…E))

保留 ADC2规则转换外部触发与E X TI11相连;当该位置1时,ADC2规则转换外部触发与TIM8_TR G O 相连

ADC1注入转换外部触发与E X TI15相连;当该位置1时,ADC1注入转换外部触发与TIM8通道4相连。

ADC2注入转换外部触发与E X TI15相连;当该位置1时,ADC2注入转换外部触发与TIM8通道4相连。

26-24位:SW J _CF G [2:0]串行线J TA G 配置,这些位只可由软件写,读这些位将返回未定义的数值。用于配置SW J 和跟踪复用功能IO 口。SW J (串行J TA G )

支持J TA G 或SWD 访问C o rt e x的调试端口。系统复位后的默认状态时启用SW J 但没有跟踪功能,这种状态下可以通过J TMS/J TCK脚上的特定信号选择J TA G 或SW模式 定义:000(完全SW J ,复位状态),001(完全SW J ,但没有NJ TRST),010(关闭J AT G 启动SW),100(关闭J AT G ,关闭SW)20位:ADC2_ETR G RE G _REMAP-a dc2规则转换外部触发重映射(手动)它控制与ADC2注入转换外部触发相连的触发输入。当该位置0时,19位:ADC2_ETR G I NJ _REMAP-ADC2注入转换外部触发重映射(手动),它控制与ADC2注入转换外部触发相连的触发输入。当该位置0时18位:ADC1_ETR G RE G _REMAP-a dc1规则转换外部触发重映射(手动)它控制与ADC1注入转换外部触发相连的触发输入。当该位置0时, ADC1规则转换外部触发与E X TI11相连;当该位置1时,ADC1规则转换外部触发与TIM8_TR G O 相连

17位:ADC1_ETR G I NJ _REMAP-ADC1注入转换外部触发重映射(手动),它控制与ADC1注入转换外部触发相连的触发输入。当该位置0时

15位:PD01_REMAP 端口D0/端口D1映像到OSC_I N /OSC_OUT(手动)当不使用HSE时PD0和PD1可映像到这两个管脚,定义:0(不映像),1(PD0-I N ,PD1-OUT)14-13位:CA N _REMAP[1:0]CA N 复用功能重影像(手动)在只有单个CA N接口的产品上控制复用功能的重映像16位:TIM5CH4_IREMAP-TIM5通道4内部重映射(手动)它控制TIM5通道4内部映像。定义:0(TIM5_CH4与PA3相连),1(LSI内部振荡器与TIM5_CH4相连,对LSI校准)12位:TIM4_REMAP定时器4的重映像(手动)控制将TIM4的通道1-4映射到G PIO上

11-10位:TIM3_REMAP[1:0]定时器3重映像(手动),控制定时器3的1-4通道在G PIO 端口的映像

9-8位:TIM2_REMAP[1:0]定时器2重映像(手动)控制定时器2的1-4通道和外部触发ETR在G PIO 端口的映像

7-6位:TIM1_REMAP[1:0]定时器1的重映像(手动)控制定时器1的通道1-4、1N -3N 、外部触发和刹车输入在G PIO的映像5-4位:USART3_REMAP[1:0]USART3的重映像(手动)控制USART3的CTS、RTS、CK、T X 、R X 复用功能在G PIO 端口的映像3位:USART2_REMAP[1:0]USART3的重映像(手动)控制USART2的CTS、RTS、CK、T X 、R X 复用功能在G PIO 端口的映像2位:USART1_REMAP-USART1的重映像(手动)控制USART1的T X 、R X 复用功能在G PIO 端口的映像1位:I2C1_REMAP-I2C1的重映像控制I2C1的SCL和SDA复用功能在G PIO 端口的映像

31302928272625242322212019181716

1514131211109876543210

31302928272625242322212019181716

1514131211109876543210

31302928272625242322212019181716

1514131211109876543210

31302928272625242322212019181716

1514131211109876543210

313029282726252423

2221201918

1716MR19MR18MR17MR1615141312111098765432

1

MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0

3130292827262524232221201918

1716

0位:SPI1_REMAP-SPI1的重映像控制SPI1的N SS、SCK、MISO、MOSI复用功能在G PIO 端口的映像

AFIO AFIO__EXTICR EXTICR11(外部中断配置寄存器外部中断配置寄存器11)

中断和事件相关寄存器

保留

E X TI3[3:0]E X TI2[3:0]E X TI1[3:0]E X TI0[3:0]

保留

15-0位:E X TI[3:0]E X TIx(x=0-3)配置(手动)用于选择E X TIx外部中断输入源

定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(P G [x]引脚)

AFIO AFIO__EXTICR EXTICR22(外部中断配置寄存器外部中断配置寄存器22)

定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(P G [x]引脚)

15-0位:E X TI[3:0]E X TIx(x=4-7)配置(手动)用于选择E X TIx外部中断输入源

E X TI7[3:0]E X TI6[3:0]E X TI5[3:0]E X TI4[3:0]

AFIO AFIO__EXTICR EXTICR33(外部中断配置寄存器外部中断配置寄存器33)

保留

E X TI11[3:0]E X TI10[3:0]E X TI9[3:0]E X TI8[3:0]

15-0位:E X TI[3:0]E X TIx(x=8-11)配置(手动)用于选择E X TIx外部中断输入源

定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(P G [x]引脚)

AFIO AFIO__EXTICR EXTICR44(外部中断配置寄存器外部中断配置寄存器44)

保留

E X TI15[3:0]E X TI14[3:0]E X TI13[3:0]E X TI12[3:0]

EXTI EXTI__EMR EMR((中断屏蔽寄存器中断屏蔽寄存器))

保留

19-0位:MRx 线x上的事件屏蔽,定义:0(屏蔽来自线x上的事件请求),1(开放来自线x上的时间请求)注:19只用于互联型,对其他芯片保留

15-0位:E X TI[3:0]E X TIx(x=12-15)配置(手动)用于选择E X TIx外部中断输入源

定义:0000(PA[x]引脚),0001(PB[x]引脚),0010(PC[x]引脚),0011(PD[x]引脚),0100(PE[x]引脚),0101(PF[x]引脚),0110(P G [x]引脚)

EXTI EXTI__IMR IMR((中断屏蔽寄存器中断屏蔽寄存器))

MR19MR18MR17MR16

151413121110987654321

MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0313029282726252423222120191817

16TR19TR18TR17TR16

151413121110987654321

TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0313029282726252423222120191817

16TR19TR18TR17TR16

151413121110987654321

TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0313029282726252423222120191817

16SWIER19SWIER18SWIER17SWIER16

151413121110987654321

SWIER15SWIER14SWIER13SWIER12SWIER11SWIER10SWIER9SWIER8SWIER7SWIER6SWIER5SWIER4SWIER3SWIER2SWIER1SWIER0313029282726252423222120191817

16PR19PR18PR17PR16

151413121110987654321

PR15PR14PR13PR12PR11PR10PR9PR8PR7PR6PR5PR4PR3PR2PR1PR0保留EXTI EXTI__RTSR RTSR((上升沿触发选择寄存器上升沿触发选择寄存器))

保留0-19位:TRx 线x的上升沿触发时间配置位,定义:0(禁止输入线x上的上升沿触发(中断和事件),1(允许输入线x上的上升沿触发(中断和时间)注19位用于互联型

EXTI EXTI__FTSR FTSR((下降沿触发选择寄存器下降沿触发选择寄存器))

保留0-19位:TRx 线x的上升沿触发时间配置位,定义:0(禁止输入线x上的上升沿触发(中断和事件),1(允许输入线x上的上升沿触发(中断和时间)注19位用于互联型

19-0位:MRx 线x上的事件屏蔽,定义:0(屏蔽来自线x上的事件请求),1(开放来自线x上的时间请求)注:19只用于互联型,对其他芯片保留

E X TI_SWIER

EXTI EXTI__PR PR((挂起寄存器挂起寄存器))

保留19-0位:SWIERx 线x上的软件中断,当该位为0时,写1将设置E X TI_PR中相应的挂起位。如果在E X TI_IMR和E X TI_EMR中允许产生中断,则此时将产生一个中断。 注:通过清除E X TI_PR的对应位(写1),可清除该位为0,19位为互联型,对其他芯片为保留

保留19-0位:PRx 挂起位,定义:0(没有发生触发请求),1(发生了选择的触发请求) 注:19位用于互联型,对其他产品为保留位

313029282726252423222120191817

16TEIF7HTIF7TCIF7G IF7TEIF6HTIF6TCIF6G IF6TEIF5HTIF5TCIF5G IF5

151413121110987654321

TEIF4HTIF4TCIF4G IF4TEIF3HTIF3TCIF3G IF3TEIF2HTIF2TCIF2G IF2TEIF1HTIF1TCIF1G IF1313029282726252423222120191817

16CTEIF7CHTIF7CTCIF7C G IF7CTEIF6CHTIF6CTCIF6C G IF6CTEIF5CHTIF5CTCIF5C G IF5

151413121110987654321

CTEIF4CHTIF4CTCIF4C G IF4CTEIF3CHTIF3CTCIF3C G IF3CTEIF2CHTIF2CTCIF2C G IF2CTEIF1CHTIF1CTCIF1C G IF1313029282726252423222120191817

16151413121110987654321

保留MEM2MEM MI N C PI N C CIRC DIR TEIE HTIE TCIE E N

313029282726252423222120191817

16

3位:TEIE允许传输错误中断(手动)定义:0(禁止TE中断),1(允许TE中断)2位:HEIE允许半传输中断(手动)定义:0(禁止TE中断),1(允许TE中断)1位:TCIE允许传输完成中断(手动)定义:0(禁止TE中断),1(允许TE中断)0位:E N 开启通道(手动)定义:0(不工作),1(开启)

保留

14位:MEM2MEM存储器到存储器模式(手动),定义:0(非存储器到存储器模式),1(启动存储器到存储器模式)13和12位:PL[1:0]通道优先级(手动),定义:00(低),01(中),10(高),11(最高)

11和10位:MSI Z E[1:0]存储器数据宽度(手动)定义:00(8位),01(16位),10(32位),11(保留)保留

PL[1:0]MSI Z E[1:0]PSI Z E[1:0]25,21,17,13,9,5,1位:CTCIFx清除通道x的传输完成标志(x=1…7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应HTIF标志)24,20,16,12,8,4,0位:C G IFx清除通道x的全局中断标志(x=1…7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应HTIF标志)

保留DMA DMA__CCRx CCRx((DMA DMA通道通道通道x x 配置寄存器配置寄存器x x =1…7)

25,21,17,13,9,5,1位:TCIFx通道x的传输完成标志(x=1…7)(硬件控制)在DMA_IFCR寄存器的相应位写入1可清除这些位,定义:(传输没完成),1(传输完成)24,20,16,12,8,4,0位:G IFx通道x的全局中断标志(x=1…7)(硬件控制)在DMA_IFCR寄存器的相应位写入1可清除这些位,定义:0(没有TE/HT/TC事件),1(有)

DMA_IFCR (DMA中断标志清除寄存器)

DMA DMA__CNDTRx CNDTRx((DMA DMA通道通道通道x x 传输数量寄存器传输数量寄存器x

x =1…7)7位:MI N C存储器地址增量模式(手动)定义:0(不执行存储器地址增量操作),1(执行存储器地址增量操作)6位:PI N C外设地址增量模式(手动)定义:0(不执行存储器地址增量操作),1(执行存储器地址增量操作)5位:CIRC 循环模式(手动)定义:0(不执行循环操作),1(执行循环操作)4位:DIR数据传输方向(手动)定义:0(从外设读),1(从存储器读)

9和8位PSI Z E[1:0]外设数据宽度(手动)定义:00(8位),01(16位),10(32位),11(保留)

27,23,19,15,11,7,3位:CTEIFx清除通道x的传输错误标志(x=1…7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应TEIF标志)DMA_ISR (DMA中断状态寄存器

保留27,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(有)DMA DMA相关寄存器相关寄存器

26,22,18,14,10,6,2位:CHTIFx清除通道x的办传输标志(x=1…7)(手动)定义:0(无效),1(清除DMA_ISR寄存器中的对应HTIF标志) 当在外部中断线上发生了选择的边沿事件,该位被置1。在该位中写入1可以清除它,也可以通过改变边沿检测的极性清除。

1514131211109876543210

313029282726252423222120191817

16151413121110987654321

313029282726252423222120191817

16151413121110987654321

N DT

15-0位:D N T[15:0]数据传输数量,数据传输数量为0到65535。这个寄存器只能在通道不工作(DMA_CCRx的E N =0)时写入,通道开启后该寄存器变为只读指令剩余的31-0位:PA[31:0]外设地址,外设数据寄存器的基地址,作为数据传输的源或目标,当开启通道(DMA_CCRx的E N =1)时不能写该寄存器,

DMA DMA__CPARx CPARx((DMA DMA通道通道通道x x 外设地址寄存器外设地址寄存器x x =1…7)

待传输字节数目。寄存器内容在每次DMA 传输后递减。数据传输结束后,寄存器的内容或者变为0,或者当该通道配置为自动重加载模式时,寄存器的内容将 被自动重新加载为之前配置时的数值。当寄存器的内容为0时,无论通道是否开启,都不会发生任何数据传输

PA

PA

DMA_CMARx(DMA通道x存储器地址寄存器x=1…7)

MA

当PSI Z E=01(16位),不使用PA[0]位。操作自动的与半字节地址对齐,当PSI Z E=10(32位)时,不使用PA[1:0]位。操作自动的与字地址对齐

MA

31-0位:MA[31:0]外设地址,外设数据寄存器的基地址,作为数据传输的源或目标,当开启通道(DMA_CCRx的E N =1)时不能写该寄存器,

313029282726252423

2221201918171615

14

13

12

11

10

987

6

5

4

3

2

1

STRT J STRT J EOC EOC AWD 31302928272625242322212019181716

AWDE N J AWDE N 1514131211109876543210

J DISC N DISCE N J AUTO AWDS G L SCA N J EOCIE AWDIE EOCIE 31302928272625242322212019181716

TSVREFE SWSTART J SWSTART E X TTRI G 保留

1514131211109876543210

J E X TTRI G ALI GN DMA RSTCAL CAL CO N T ADO N 保留E X TSEL[2:0]J E X TSEL[2:0]保留保留7位:J EOCIE允许产生注入通道转换结束中断(手动)用于禁止或允许所有注入通道转换结束后产生的中断,定义:0(禁止J EOC中断),1(当置位J EOC时产生中断)保留9位:AWDS G L 扫描模式中在一个单一的通道上使用看门狗(手动)用于开启或关闭AWDCH[4:0]位指定的通道上的看门狗功能,定义:(在所有通道用),1(单一通道用)10位:J AUTO 自动的注入通道组转换,(手动)用于开启或关闭规则通道组转换结束后自动的注入通道组转换,定义:0(关闭自动注入通道组的转换),1(开启)11位:DISCE N 在规则通道上的间断模式,(手动)用于开启或关闭规则通道组函的间断模式,定义:0(规则通道组注上禁用间断模式),1(使用)

12位:J DISCE N 在注入通道上的间断模式,(手动)用于开启或关闭注入通道组上的间断模式,定义:0(注入通道注组上禁用间断模式),1(使用)15-13位:DISC N UM[2:0]间断模式通道计数,软件通过这些位定义在间断模式下收到外部触发后转换规则通道的数目,定义:000(1通道)001(2通道)111(8通道) 同步丢失,建议在进行任何配置改变前关闭双模式

1000(慢速交叉模式),1001(交替触发模式)注:在ADC2和ADC3中这些位为保留,在双模式中,改变通道的配置会产生一个重新开始的条件,则将导致8位:SCA N扫描模式(手动)用于开启或关闭扫描模式,在扫描模式中,转换由ADC_S Q Rx或ADC_J S Q Rx寄存器选中的通道,定义:0(关闭),1(使用扫描模式)

0位:AWD模拟看门狗标志,该位在硬件转换的电压值超出了ADC_LTR和ADC_HTR寄存器定义的范围时置位,由软件清0,定义:0(没事件),1(有事件)

1位:转换结束位(该位由硬件在(规则或注入)通道组转换结束时设置,由软件清除或由读取ADC_DR时清除,定义:0(转换未完成),1(转换完成) 0011(混合同步注入+快速交叉模式),0100(混合同步注入+慢速交叉模式),0101(注入同步模式),0110(规则同步模式),0111(快速交叉模式)19-16位:DUALMOD[3:0]双模式选择(手动)定义:0000(独立模式),0001(混合同步规则+注入同步模式),0010(混合同步规则+交替触发模式)

22位:J AWDE N 在注入通道上开启模拟看门狗(手动)定义:0(在规则通道上禁用模拟开门狗),1(使用)

23位:AWDE N 在规则通道上开启模拟看门狗(手动)定义:0(在规则通道上禁用模拟开门狗),1(使用)保留DUALMOD[3:0]

DISC N UM[2:0]AWDCH[4:0]

4-0位:AWDCH[4:0]模拟看门狗通道选择位(手动)选择模拟看门狗保护的输入通道,00000(0通道)00001(1通道)01111(16)10000(16)10001(17)其他保留 注:ADC1的模拟输入通道16和17在芯片内部分别连到了温度传感器和Vr efin t,ADC2的模拟输入通道16和17连到了VSS,ADC3模拟输入9/14/15/16/17与VSS 相连

23位:TSVREFE 温度传感器和Vr efin t使能(手动)在多余1个ADC的器件中该位仅出现在ADC1中,定义:0(禁止),1(开启)

ADC ADC__CR CR11(ADC ADC控制寄存器控制寄存器控制寄存器11)

ADC ADC相关寄存器相关寄存器

当MSI Z E=01(16位),不使用MA[0]位。操作自动的与半字节地址对齐,当MSI Z E=10(32位)时,不使用MA[1:0]位。操作自动的与字地址对齐

ADC ADC__SR SR((ADC ADC状态寄存器状态寄存器状态寄存器))保留

保留

6位:AWDIE允许产生模拟看门狗中断(手动),在扫描模式下,如果看门狗检测到超范围数值时,只有在设置了该位时扫描才会终止。定义:0(禁止),1(允许)5位:EOCIE允许产生EOC中断(手动)用于禁止或允许转换后产生中断,定义:0(禁止EOC中断),1(允许,当硬件置位EOC时产生中断)

ADC ADC__CR CR22(ADC ADC控制寄存器控制寄存器控制寄存器22)

2位:J EOC注入通道转换结束位(硬件在所有注入通道转换结束时设置,由软件清0)定义:0(转换未完成),1(转换完成)

3位:J STRT注入通道开始位(硬件在开始转换时置位,软件清0)定义:0(规则通道未开始转换),1(规则通道已开始转换)4位:STRT 规则通道开始位(硬件在开始转换时置位,软件清0)定义:0(规则通道未开始转换),1(规则通道已开始转换)

31302928272625242322212019181716

1514131211109876543210

SMP15[0]31302928272625242322212019181716

保留1514131211109876543210

SMP5[0]31302928272625242322212019181716

1514131211109876543210

15位:J E X TTRI G 注入通道的外部触发转换模式(手动)定义:0(不用外部事件启动转换),1(使用外部事件启动转换)

21位:J SWSTART开始转换注入通道,(软件启动该位,转换后硬件马上清除此位)如果在J E X TSEL[2:0]位中选择了J SWSTART位触发事件,启动一组注入通道的转换 定义:0(复位状态),1(开始转换注入通道)

定义:000(T1的CC1事件)001(T1的CC2事件)010(T1的CC3事件)011(T2的CC2事件)100(T3的TR G O事件)101(T4的CC4事件)110E X TI 线11/T8_TR G O事件 111(SWSTART)

ADC ADC__JOFRx JOFRx((ADC ADC注入通道数据偏移寄存器注入通道数据偏移寄存器注入通道数据偏移寄存器x x =1…4)

ADC ADC__SMPR SMPR11(ADC ADC采样时间寄存器采样时间寄存器采样时间寄存器) )

SMP14[2:0]SMP13[2:0]SMP12[2:0]SMP11[2:0]SMP10[2:0]ADC ADC__SMPR SMPR11(ADC ADC采样时间寄存器采样时间寄存器采样时间寄存器) )

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)

SMP7[2:0]20位:E X TTRI G规则通道的外部触发转换模式(手动),定义:0(不用外部事件启动转换),1(使用外部事件启动转换)

19-17位:E X TSEL[2:0]选择启动规则通道组转换的外部事件,这些位选择用于启动规则通道组转换的外部事件,ADC1和ADC2的触发配置如下

定义:0(复位状态),1(开始转换规则通道)

111(SWSTART )

ADC3的触发配置如下:000(T3的CC1事件)001(T2的CC3事件)010(T1的CC3事件)011(T8的CC1事件)100(T8的TR G O事件)101(T5的CC1事件)110(T5的CC3事件)22位:SWSTART开始转换规则通道(软件启动该位,转换后硬件马上清除此位)如果在E X TSEL[2:0]位中选择了SWSTART为触发事件,该位用于启动一组规则通道的转换 111(J SWSTART )

定义:000(T1的TR G O事件)001(T1的CC4事件)010(T2的TR G O事件)011(T2的CC1事件)100(T3的CC4事件)101(T4的TR G O事件)110(E X TI 线15/T8_CC4事件)14-12位:J E X TSEL[2:0]选择启动注入通道转换的外部事件,这些位选择用于启动注入通道组转换的外部事件,定义:ADC1和ADC2的触发配置如下

8位:DMA 字节存储器访问模式(手动)定义:0(不使用DMA模式),1(使用)

11位:ALI GN 数据对齐(手动)定义:0(右对齐),1(左对齐)

ADC3触发配置,定义:000(T1的TR G O )001(T1的CC4)010(T4的CC3)011(T8的CC2)100(T8的CC4)101(T5的TR G O )110(T5的CC4)111(J SWSTART )3位:RSTCAL复位校准(手动,在校准寄存器被初始化后该位将被清除,定义:0(校准寄存器已初始化),1(初始化校准寄存器) 注:如果正在进行转换时设置RSTCAL,清除校准寄存器需要额外的周期

2位:CAL-A/D校准(该位软件置1,在校准结束时由硬件清除),定义:0(校准完成),1(开始校准)

1位:CO N T 连续转换(手动,如果设置此位则转换将连续进行直到该位被清除),定义:0(单词转换),1(连续转换)

0位:ADO N 开关AD 转换器(手动)当该位为0时,写入1将把ADC从断电模式下唤醒。当该位为1时,写入1将启动转换,应用程序需注意,在转换器上电转换开始有 一个延迟T s t ab ,定义:0(关闭ADC 转换和校准,并进入断电模式),1(开启ADC并启动转换)

保留SMP17[2:0]SMP16[2:0]SMP15[2:1]

注:如果在这个寄存器与ADO N 一起还有其他位改变,则转换不被触发。则是为了防止触发错误的转换。

SMP6[2:0]SMP5[2:1]

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)

SMP9[2:0]SMP8[2:0]SMP4[2:0]SMP3[2:0]SMP2[2:0]SMP1[2:0]保留

保留J OFFSETx

313029282726252423222120191817

16151413121110987654321

313029282726252423222120191817

16151413121110987654321

313029282726252423222120191817

16151413121110987654321

S Q 16

31302928272625242322212019181716151413121110987654321

S Q 10[0]31302928272625242322212019181716151413121110987654321

S Q 4[0]ADC ADC__SQR SQR33(ADC ADC规则序列寄存器规则序列寄存器规则序列寄存器33)

保留S Q 6[4:0]S Q 5[4:0]S Q 4[4:0]S Q 3[4:0]S Q 2[4:0]S Q 1[4:0]ADC ADC__HTR HTR((ADC ADC看门狗高阀值寄存器看门狗高阀值寄存器看门狗高阀值寄存器))

ADC ADC__LRT LRT((ADC ADC看门狗低阀值寄存器看门狗低阀值寄存器看门狗低阀值寄存器))

ADC ADC__SQR SQR11(ADC ADC规则序列寄存器规则序列寄存器规则序列寄存器11)

ADC ADC__SQR SQR22(ADC ADC规则序列寄存器规则序列寄存器规则序列寄存器22)

保留

保留HT[11:0]

11-0位:HT[11:0]模拟看门狗高阀值,这些位定义了模拟看门狗的阀值高限。

保留

保留

11-0位:J OFFSETx[11:0]注入通道x的数据偏移,当转换注入通道时,这些位定义了用于从原始转换数据中减去的数值。转换的结果可以在ADC_J DRx寄存器中读出

11-0位:LT[11:0]模拟看门狗低阀值,这些位定义了模拟看门狗的阀值低限

L[3:0]S Q 16[4:1]

S Q 15[2:0]9-5位:S Q 14[4:0]规则序列中的第14个转换14-10位:S Q 15[4:0]规则序列中的第15个转换19-15位:S Q 16[4:0]规则序列中的第16个转换,这些位由软件定义转换序列中的第16个转换通道的编号(0~17)。23-20位:L[3:0]规则通道序列长度,这些位由软件定义在规则通道转换序列中的通道数目,定义:0000(1个转换)…1111(16个转换)S Q 13[2:0]S Q 14[2:0]4-0位:S Q 13[4:0]规则序列中的第13个转换

保留S Q 12[4:0]S Q 11[4:0]S Q 10[4:0]S Q 9[4:0]S Q 8[4:0]S Q 7[4:0]4-0位:S Q 7[4:0]规则序列中的第7个转换,

9-5位:S Q 8[4:0]规则序列中的第8个转换,14-10位:S Q 9[4:0]规则序列中的第9个转换 19-15位:S Q 10[4:0]规则序列中的第10个转换, 24-20位:S Q 11[4:0]规则序列中的第11个转换, 29-25位:S Q 12[4:0]规则序列中的第12个转换,这些位由软件定义转换序列中的第12个转换通道的编号(0~17)。29-25位:S Q 6[4:0]规则序列中的第6个转换,这些位由软件定义转换序列中的第12个转换通道的编号(0~17)。24-20位:S Q 5[4:0]规则序列中的第5个转换,

31

30

29

28

2726

25242322

21

2019

1817161514131211

1098765

43210

J S Q 4[0]

31302928272625242322212019181716

1514131211109876543210

31302928272625242322212019181716

1514131211109876543210

ADC_DR(ADC 规则数据寄存器)

31-16位:ADC2DATA[15:0]ADC2转换的数据,在ADC1中:双模式下,这些位包含了ADC2转换的规则通道数据,在ADC2和ADC3中:不使用这些位

DATA[15:0]

ADC2DATA[15:0]

14-10位:S Q 3[4:0]规则序列中的第3个转换 ADC ADC__JSQRADC JSQRADC((注入序列寄存器注入序列寄存器))19-15位:S Q 4[4:0]规则序列中的第4个转换, 9-5位:S Q 2[4:0]规则序列中的第2个转换,4-0位:S Q 1[4:0]规则序列中的第1个转换,

保留J L[3:0]J S Q 4[4:1]

J S Q 3[4:0]9-5位:J S Q 3[4:0]:注入序列中的第2个转换14-10位:J S Q 3[4:0]:注入序列中的第3个转换 意味着扫描转换将按下列通道顺序转换:7、3、3,而不是2、7、3。 注:不同于规则转换序列,如果J L[1:0]的长度小于4,则转换的序列顺序是从(4-J L )开始。例如:ADC_J S Q R[21:0] = 10 00011 00011 00111 0001019-15位:J S Q 4[4:0]注入序列中的第4个转换,这些位由软件定义转换序列中的第4个转换通道的编号(0~17)。

21-20位:J L[1:0]注入通道序列长度,这些位由软件定义在规则通道转换序列中的通道数目。定义:00(1个转换),01(2个转换),10(3个转换),11(4个转换)J S Q 1[4:0]J S Q 2[4:0]4-0位:J S Q 1[4:0]:注入序列中的第1个转换

保留

J DATA[15:0]

15-0位:J DATA[15:0]注入转换的数据,这些位为只读,包含了注入通道的转换结果。数据是左对齐或右对齐

ADC ADC__JDRx JDRx((ADC ADC 注入数据寄存器注入数据寄存器注入数据寄存器x x =1…4)

31302928272625242322212019181716

DMAE N 2TE N 2BOFF2E N 21514131211109876543210

DMAE N 2TE N 1BOFF1E N 1

31302928272625242322212019181716

1514131211109876543210

SWTRI G 2SWTRI G 1

1010:[10:0] / 2047;≥1011: [11:0] / 4095

7-6位:WAVE1[1:0]DAC通道1噪声/三角波生成使能(手动)定义:00(关闭波形发生器)10(使能噪声波形发生器)1x(使能三角波发生器)

5-3位:TSEK1[2:0]DAC通道1触发选择,该3位用于选择DAC通道1的外部触发事件,定义:000(TIM6 TR G O事件)001(F107时T3的TR G O事件,对于F103是T8的TR G O事件DAC DAC__CR CR((DAC DAC控制寄存器控制寄存器控制寄存器))

18位:TE N 2DAC通道2触发使能(手动)使能/关闭DAC通道2的触发,定义:0(关闭触发,写入DAC_DHRx寄存器的数据在1个APB1时钟周期后传入DAC_DOR2寄存器)15-0位:规则转换的数据,这些位为只读,包含了规则通道的转换结果。数据是左对齐或右对齐

保留 注意:该3位只能在TE N 2 = 1(DAC通道2触发使能)时设置

MAMP2[3:0]WAVE2[2:0]TSEL2[2:0]21-19位:TSEK2[2:0]DAC通道2触发选择,该3位用于选择DAC通道2的外部触发事件,定义:000(TIM6 TR G O事件)001(F107时T3的TR G O事件,对于F103是T8的TR G O事件23-22位:WAVE2[1:0]DAC通道2噪声/三角波生成使能(手动)定义:00(关闭波形发生器)10(使能噪声波形发生器)1x(使能三角波发生器)

1010:[10:0] / 2047;≥1011: [11:0] / 4095

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] / 1023; 定义:0000:不屏蔽LSFR位0 / 三角波幅值等于1;0001:不屏蔽LSFR位[1:0] / 三角波幅值等于3;0010:不屏蔽LSFR位[2:0] / 三角波幅值等于7;

27-24位:MAMP2[3:0]DAC通道2屏蔽/幅值选择器(手动)用来在噪声生成模式下选择屏蔽位,在三角波生成模式下选择波形的幅值

28位:DMAE N 2-DAC通道2 DMA使能,该位由软件设置和清除,定义:0(关闭DAC通道2DMA模式),1(使能)

保留MAMP1[3:0]WAVE1[2:0]TSEL1[2:0] 010(TIM7 TR G O事件)011(TIM5 TR G O事件)100(TIM2 TR G O事件)101(TIM4 TR G O事件)110(外部中断线9)111(软件触发) 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输出缓存) 注意:该3位只能在TE N 1 = 1(DAC通道1触发使能)时设置

16位:E N 2DAC通道2使能,定义:0(关闭DAC通道2),1(使能DAC通道2)

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] / 1023; 010(TIM7 TR G O事件)011(TIM5 TR G O事件)100(TIM2 TR G O事件)101(TIM4 TR G O事件)110(外部中断线9)111(软件触发)12位:DMAE N 1-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;

2位:TE N 1DAC通道1触发使能(手动)使能/关闭DAC通道1的触发,定义:0(关闭触发,写入DAC_DHRx寄存器的数据在1个APB1时钟周期后传入DAC_DOR2寄存器) 1:使能DAC通道2触发,写入DAC_DHRx寄存器的数据在3个APB1时钟周期后传入DAC_DOR1寄存器。

1位:BOFF1关闭DAC通道1输出缓存,用来使能/关闭DAC通道1的输出缓存,定义:0(使能DAC通道1输出缓存)1(关闭DAC通道1输出缓存) 注意:如果选择软件触发,写入寄存器DAC_DHRx的数据只需要1个APB1时钟周期就可以传入寄存器DAC_DOR1。

0位:DAC通道1使能,(手动),0(关闭),1(使能)

DAC DAC__SWTRIGR SWTRIGR((DAC DAC软件触发寄存器软件触发寄存器软件触发寄存器))

保留保留

DAC DAC相关寄存器相关寄存器

飞思卡尔锁相环

备战飞思卡尔智能车大赛.开始模块总结. 锁相环设置. 公式: PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1), fbus=PLLCLK/2 void INIT_PLL(void) { CLKSEL &= 0x7f; //选用外部时钟.准备设置锁相环 PLLCTL &= 0x8F; //禁止锁相环 SYNR = 0xc9; //设置SYNR REFDV = 0x81; //设置REFDV PLLCTL |=0x70; //锁相环使能 asm NOP; asm NOP; //两个机器周期缓冲时间 while(!(CRGFLG&0x08)); //等待锁相环锁定 CLKSEL |= 0x80; //设置锁相环为时钟源 } 飞思卡尔XS128的PLL锁相环详细设置说明——关于如何提高总线工作频率PLL锁相环就相当于超频 单片机超频的原因和PC机是个一道理。分频的主要原因是外设需要的工作频率往往远低于CPU/MEMORY 这也和PC机南北桥的原理类似。总线频率设置过程 1、禁止总中断 2、寄存器CLKSEL(时钟选择寄存器)的第七位置0 即CLKSEL_PLLSEL=0。选择时钟源为外部晶振OSCCLK(外接晶振频率) 在PLL(锁相环)程序执行前 内部总线频率为OSCCLK/2 3. PLLCTL_PLLON=1 打开PLL 4.设置SYNR 时钟合成寄存器 、REFDV 时钟分频寄存器 、POSTDIV三个寄存器的参数 5、_asm(nop) _asm(nop);加入两条空指令 使锁相环稳定 6、while(!(CRGFLG_LOCK==1));//时钟校正同步 7、CLKSEL_PLLSEL=1; 下面详细说一下频率的计算一、时钟合成寄存器SYNR寄存器结构 VCOFRQ[1:0]控制压控振动器VCO的增益 默认值为00 VCO的频率与VCOFRQ[1:0]对应表

飞思卡尔单片机编程

关于Codewarrior 中的 .prm 文件 网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。 正文: 关于Codewarrior 中的.prm 文件 要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior 5.0 编译器,单片机采用MC9S12XS128。 通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于Project Settings->Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下: .prm文件范例: NAMES END SEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;

READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; EEPROM_04 = READ_ONLY DATA_FAR IBCC_FAR 0x040800 TO 0x040BFF; EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF;

飞思卡尔智能车比赛细则

2016

目录

第十一届竞赛规则导读 参加过往届比赛的队员可以通过下面内容了解第十一届规则主要变化。如果第一次参加比赛,则建议对于本文进行全文阅读。 相对于前几届比赛规则,本届的规则主要变化包括有以下内容: 1.本届比赛新增了比赛组别,详细请参见正文中的图1和第四章的“比赛任务” 中的描述; 2.第十届电磁双车组对应今年的A1组:双车追逐组。其它组别与新组别的对应 关系请参见图2; 3.为了提高车模出界判罚的客观性,规则提出了两种方法:路肩法和感应铁丝 法,详细请见赛道边界判定”; 4.改变了原有的光电计时系统,所有赛题组均采用磁感应方法计时,详细请参 见“计时裁判系统”; 5.取消了第十届的发车灯塔控制的方式; 6.赛道元素进行了简化,详细请参见“赛道元素”; 7.赛道材质仍然为PVC耐磨塑胶地板,但赛题组A2不再需要赛道。 8.对于车模所使用的飞思卡尔公司MCU的种类、数量不再限制。 9.比赛时,每支参赛队伍的赛前准备时间仍然为20分钟,没有现场修车环节。

一、前言 智能车竞赛是从2006开始,由教育部高等教育司委托高等学校自动化类教学指导委员会举办的旨在加强学生实践、创新能力和培养团队精神的一项创意性科技竞赛。至今已经成功举办了十届。在继承和总结前十届比赛实践的基础上,竞赛组委会努力拓展新的竞赛内涵,设计新的竞赛内容,创造新的比赛模式,使得围绕该比赛所产生的竞赛生态环境得到进一步的发展。 为了实现竞赛的“立足培养、重在参与、鼓励探索、追求卓越”的指导思想,竞赛内容设置需要能够面向大学本科阶段的学生和教学内容,同时又能够兼顾当今时代科技发展的新趋势。 第十一届比赛的题目在沿用原来根据车模识别赛道传感器种类进行划分的基础类组别之上,同时增加了以竞赛内容进行划分的提高类组别,并按照“分赛区普及,全国总决赛提高”的方式,将其中一个类别拓展出创意类组别。第十一届比赛的题目各组别分别如下: ●基础类包括B1光电组、B2摄像头组、B3电磁直立组、B4电轨组; ●提高类包括A1双车追逐组、A2信标越野组; ●创意类包括I1 电轨节能组。 图 1 不同组别,不同挑战度 每个组别在选用的车模、赛道识别方法、完成任务等方面存在差别,对于参赛选手不同学科知识和能力要求也不同,制作的挑战度也有较大的区别。相比较而言,

飞思卡尔单片机LED控制例程详解

我的第一个LED程序 准备工作: 硬件:Freescale MC9S08JM60型单片机一块; 软件:集成开发环境codewarrior IDE; 开发板上有两个LED灯,如下图所示: 实验步骤: 1.首先,确保单片机集成开发环境及USBDM驱动正确安装。其中USBDM的安装步骤如下:?假设之前安装过单片机的集成开发环境6.3版本:CW_MCU_V6_3_SE; ?运行USBDM_4_7_0i_Win,这个程序会在c盘的程序文件夹下增加一个目录C:\Program Files\pgo\USBDM 4.7.0,在这个目录下: 1〉C:\ProgramFiles\pgo\USBDM 4.7.0\FlashImages\JMxx下的文件 USBDM_JMxxCLD_V4.sx是下载器的固件文件; 2〉C:\Program Files\pgo\USBDM 4.7.0\USBDM_Drivers\Drivers下有下载器的usb 驱动 所以在插入usb下载器,电脑提示发现新的usb硬件的时候,选择手动指定驱动 安装位置到以上目录即可。 ?运行USBDM_4_7_0i_Win之后,还会在目录: C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\prog\gdi 下增加一些文件,从修改时间上来看,增加了6个文件,这些文件是为了在codewarrior 集成开发环境下对usb下载器的调试、下载的支持。

2.新建一个工程,工程建立过程如下: ?运行单片机集成开发环境codewarrior IDE ?出现如下界面 ●Create New Project :创建一个新项目工程 ●Load Example Project :加载一个示例工程 ●Load Previous Project :加载以前创建过的工程 ●Run Getting started Tutorial:运行CodeWarrior软件帮助文档 ●Start Using CodeWarrior:立刻使用CodeWarrior ?点击Create New project按钮,以创建一个新的工程,出现选择CPU的界面 如下,请选择HCS08/HCS08JM Family/MC9S08JM60,在右边的Connection窗口

飞思卡尔智能车竞赛新手入门建议

每年都会有很多新人怀着满腔热情来做智能车,但其中的很多人很快就被耗光了热情和耐心而放弃。很多新人都不知道如何入手,总有些有劲无处使的感觉,觉得自己什么都不会,却又不知道该干什么。新人中存在的主要问题我总结了以下几点: l缺乏自信,有畏难情绪 作为新人,一切都是新的。没有设计过电路,没有接触过单片机,几乎什么都不会。有些新人听了两次课,看了两篇技术报告,就发现无数不懂不会的东西,于是热情在消退,信心在减弱。这些都是放弃的前兆。殊不知,高手都是从新人过来的,没有谁天生什么都会做。一件事件,如果还没开始做,就自己否定自己,认为自己做不到,那么肯定是做不到的。 l习惯了被动接收知识,丧失了主动学习的能力。 现在的学生大多从小习惯了被灌输知识,只学老师教的,只学老师考的。殊不知一旦走向社会,将不再有老师来教,不再有应付不完的考试。做智能车和传统的教学不同,学生将从被动学习的地位转变为主动学习。就算有指导老师,有指导的学长,但也都处于被动地位,往往都不会主动来教。有的学生一开始就没有转变思想,还希望就像实验课一样,老师安排好步骤1,2,3……,然后自己按照老师安排好的步骤按部就班的完成。这样的学生,往往都丧失了提出问题和分析问题的能力,只是一个应付考试的机器。要知道,解决问题的第一步是提出问题,如果总等着别人来教,那么问题永远会挡在你面前。 l缺乏团队精神和合作意识 智能车比赛是以团队的形式参赛,只依靠个人能力单兵作战就能取得好成绩的是很少很少的。当今社会,任何人的成功都离不开身后的团队的支撑。智能车是一个很复杂的系统,电路、机械、传感器、单片机、底层驱动、控制算法……。如果所有的任务都是一个人去完成,固然锻炼了自己,但想做的很好却很不现实。很多新人,来到实验室,来到一个陌生的环境和团队,连向学长请教,和同学交流的勇气都没有,又如何融入团队呢。除了要主动融入团队,还要培养自己的团队意识。团队精神往往表现为一种责任感,如果团队遇到问题,每个人都只顾自己,出了错误,不想着解决问题,而是互相推诿埋怨。这样的团队,肯定是无法取得好成绩的。 l缺乏耐心和细心的精神 其实把一件事做好很简单,细心加上耐心。不细心就想不到,没有耐心,即使想到了也做不到。做事怕麻烦,将就,说白了就是惰性在作祟。明明可以把支架做的更轻更漂亮,明明可以把程序写的更简洁,明明可以把电路设计得更完善……。其实,每个人都有很大潜力,如果不逼自己一次,你永远不知道自己的潜力有多

飞思卡尔单片机寄存器及汇编指令详解

附录I:寄存器地址列表 直接页面寄存器总结

高页面寄存器总结

非易失寄存器总结 注:直接页面寄存器表地址的低字节用粗体显示,直接寻址对其访问时,仅写地址低字节即可。第2列中寄存器名用粗体显示以区别右边的位名。有0的单元格表示未用到的位总是读为0,有破折号的单元格表示未用或者保留,对其读不定。

附录II 指令接与寻址方式 HCS08指令集概括 运算符 () = 括号种表示寄存器或存储器位置的内容 ← = 用……加载(读: “得到”) & = 布尔与 | = 布尔或 ⊕= 布尔异或 ×= 乘 ÷ = 除 : = 串联 + = 加 - = 求反(二进制补码) CPU registers A =>累加器 CCR =>条件代码寄存器 H =>索引寄存器,高8位 X => 索引寄存器,低8位 PC =>程序计数器 PCH =>程序计数器,高8位 PCL =>程序计数器,低8位 SP =>堆栈指针 存储器和寻址 M =>一个存储区位置或者绝对值数据,视寻址模式而定 M:M + 0x0001 => 两个连续存储位置的16位值.高8位位于M的地址,低8位位于更高的连续地址. 条件代码寄存器(CCR)位 V => 二进制补码溢出指示,第7位 H => 半进位,第4位 I => 中断屏蔽,第 3位 N => 求反指示器, 第2位 Z => 置零指示器, 第1位 C => 进/借, 第0位 (进位第 7位 ) CCR工作性符号 – => 位不受影响 0 = > 位强制为0 1 = > 位强制为1

= >根据运算结果设置或清除位 U = > 运算后没有定义 机器编码符号 dd =>一个直接寻址0x0000–0x00FF的低8位(高字节假设为0x00) ee => 16位偏移量的高8位 ff => 16位偏移量的低8位 ii => 立即数的一个字节 jj => 16位立即数值的高位字节 kk => 16位立即数值的低位字节 hh => 16位扩展寻址的高位字节 ll => 16位扩展寻址的低位字节 rr => 相对偏移量 n —任何表达范围在0–7之间的一个有符号数的标号或表达式 opr8i —任何一个表达8位立即值的标号或表达式 opr16 —任何一个表达16位立即值的标号或表达式 opr8a —任何一个表达一个8位值的标号或表达式.指令对待这个8位值为直接页面64K 字节地址空间(0x00xx)中地址的低8位. opr16a —任何一个表达16位值的标号或表达式.指令对待这个值为直接页面64K字节地址空间. oprx8 —任何一个表达8位无符号值的标号或表达式,用于索引寻址. oprx16 —任何一个16位值的标号或表达式.因为HCS08有一个16位地址总线,这可以为一个有符号或者无符号值. rel —任何指引在当前指令目标代码最后一个字节之后–128 to +127个字节之内的标号或表达式.汇编器会计算包括当前指令目标代码在内的8位有符号偏移量. 寻址方式 隐含寻址(Inherent)如CLRA,只有操作码,无操作数,需要操作的数据一般为CPU寄存器,因此不需要再去找操作数了。(INH) 立即寻址 (Immediate)如LDA #$0A,“$”表示16进制,此时操作数位于FLASH空间,与程序一起存放。(IMM) 直接寻址 (Direct)如 LDA $88,只能访问$0000-$00FF的存储器空间,指令短速度快; (DIR) 扩展寻址 (Extended)如果操作数地址超出了$00FF,自动为扩展寻址;(EXT) 相对寻址(Relative)如BRA LOOP,指令中一般给出8位有符号数表示的偏移量。(REL) 变址寻址 (Indexed) 采用[H:X]或SP作为指针的间接寻址方式。( IX )( IX1 )( IX2 ) 变址寻址 (Indexed) 1〉无偏移量:CLR ,X 简写(IX) 2〉无偏移量,指令完成后指针加1(H:X = H:X + 0x0001) ,简写(IX+)只用于指令MOV和CBEQ指令中;

飞思卡尔杯智能车竞赛报告总结

1.1. 系统分析 智能车竞赛要求设计一辆以组委会提供车模为主体的可以自主寻线的模型车,最后成绩取决于单圈最快时间。因此智能车主要由三大系统组成:检测系统,控制系统,执行系统。其中检测系统用于检测道路信息及小车的运行状况。控制系统采用大赛组委会提供的16位单片机MC9S12XS128作为主控芯片,根据检测系统反馈的信息新局决定各控制量——速度与转角,执行系统根据单片机的命令控制舵机的转角和直流电机的转速。整体的流程如图1.1,检测系统采集路径信息,经过控制决策系统分析和判断,由执行系统控制直流电机给出合适的转速,同时控制舵机给出合适的转角,从而控制智能车稳定、快速地行驶。 图2.1 1.2. 系统设计 参赛小车将电感采集到的电压信号,经滤波,整流后输入到XS128单片机,用光电编码器获得实时车速,反馈到单片机,实现完全闭环控制。速度电机采用模糊控制,舵机采用PD控制,具体的参数由多次调试中获得。考滤到小车设计的综合性很强,涵盖了控制、传感、电子、电气、计算机和机械等多个学科领域,因此我们采用了模块化设计方法,小车的系统框图如图2.2。

第五届全国大学生智能汽车竞赛技术报告 图2.2 1.3. 整车外观 图2.3

1.4. 赛车的基本参数 智能车竞赛所使用的车模是东莞市博思公司生产的G768型车模,由大赛组委会统一提供,是一款带有摩擦式差速器后轮驱动的电动模型车。车模外观如图3.1。车模基本参数如表3.1。 图3.1 表3.1车模基本参数 1.5. 赛车前轮定位参数的选定

第五届全国大学生智能汽车竞赛技术报告 现代汽车在正常行驶过程中,为了使汽车直线行驶稳定,转向轻便,转向后能自动回正,减少轮胎和转向系零件的磨损等,在转向轮、转向节和前轴之间须形成一定的相对安装位置,叫车轮定位,其主要的参数有:主销后倾、主销内倾、车轮外倾和前束。模型车的前轮定位参数都允许作适当调整,故此我们将自身专业课所学的理论知识与实际调车中的赛车状况相结合,最终得出赛车匹配后的前轮参数[6]。 1.5.1. 主销后倾角 主销后倾角是指在纵向平面内主销轴线与地面垂直线之间的夹角γ,如图3-2。模型车的主销后倾角可以设置为0、 2°?3°、 4°?6°,可以通过改变上横臂轴上的黄色垫片来调整,一共有四个垫片,前二后二时为0°,前一后三为2°?3°,四个全装后面时为4°?6°。 由于主销后倾角过大时会引起转向沉重,又因为比赛所用舵机特性偏软,所以不宜采用大的主销后倾角,以接近0°为好,即垫片宜安装采用前二后二的方式,以便增加其转向的灵活性。如图3.3。 图3.2 图3.3 1.5. 2. 主销内倾角 主销内倾角是指在横向平面内主销轴线与地面垂直线之间的夹角β,如图3.4,它的作用也是使前轮自动回正。对于模型车,通过调整前桥的螺杆的长度可以改变主销内倾角的大小,由于前轴与主销近似垂直的关系,故主销内倾角

飞思卡尔第一张

3.1 实验一 I/O口输入输出实验 4.实验原理 如图3-1所示,将PTB6设置为输出端口后,若向PTB6写高电平时,LED灯不亮,若写低电平,则LED亮。PTA2设置为输入端口后,在按键SW未按下时,读PTA2始终为高电平,只有在按键SW按下时,读PTA2时才得到低电平。 图3-1 LED灯与按键控制电路原理图 5.实验内容 ⑴结合开发板电路图,用跳线夹连接对应LED引脚。即LED1、LED2分别与PTB6、PTB7相连接。将PTB 口定义为输出接口。对端口写0即可点亮LED灯。单步运行观察实验现象。 ⑵结合开发板电路图,用跳线夹再将开发板上的按键SW1、SW2连到PTA2。将PTA口定义为输入口,将PTB口定义为输出口。按下SW1时点亮LED1、LED2。按下SW2时熄灭LED1、LED2。 6.参考程序 ⑴直接点亮LED灯,其参考程序如下。 C语言程序: #include #include "derivative.h" /* 头文件 */ void main(void) { PTBDD=0xff; /*定义PTB口为输出口 */ PTBD=0xff; /*输出高电平,LED灯灭*/ PTBD=0x00; /*PTB口输出低电平,即PTB6、PTB7输出低电平 */

for(;;) { __RESET_WATCHDOG(); /* 清看门狗 */ } /* 死循环 */ } 汇编程序(加粗部分为所需添加的程序代码): ;******************************************************************* ;* This stationery serves as the framework for a user application. * ;* For a more comprehensive program that demonstrates the more * ;* advanced functionality of this processor, please see the * ;* demonstration applications, located in the examples * ;* subdirectory of the "Freescale CodeWarrior for HC08" program * ;* directory. * ;******************************************************************* ; Include derivative-specific definitions INCLUDE 'derivative.inc' ; ; export symbols ; XDEF _Startup ABSENTRY _Startup ; ; variable/data section ; ORG RAMStart ; Insert your data definition here ExampleVar: DS.B 1 ; ; code section ; ORG ROMStart _Startup: LDHX #RAMEnd+1 ; initialize the stack pointer TXS CLI ; enable interrupts mainLoop: ; Insert your code here MOV #$FF,PTBDD; 端口方向寄存器初始化为输出 MOV #$FF,PTBD; 输出高点平,LED灯灭 MOV #$00,PTBD; 输出低电平,LED灯亮 NOP

飞思卡尔MC9S12XS128单片机中断优先级设置简易教程

本教程试图用最少的时间教你飞思卡尔XS128单片机的中断优先级设置方法和中断嵌套的使用,如果是新手请先学习中断的基本使用方法。 先来看看XS128 DataSheet 中介绍的相关知识,只翻译有用的: 七个中断优先级 每一个中断源都有一个可以设置的级别 高优先级中断的可以嵌套低优先级中断 复位后可屏蔽中断默认优先级为1 同一优先级的中断同时触发时,高地址(中断号较小)的中断先响应 注意:高地址中断只能优先响应,但不能嵌套同一优先级低地址的中断 下面直接进入正题,看看怎么设置中断优先级: XS128中包括预留的中断一共有128个中断位,如果为每个中断都分配一个优先级寄存器的话会非常浪费资源,因此飞思卡尔公司想出了这样一种办法:把128个中断分为16个组,每组8个中断。每次设置中断时,先把需要的组别告诉某个寄存器,再设置8个中断优先寄存器的某一个,这样只需9个寄存器即可完成中断的设置。 分组的规则是这样的:中断地址位7到位4相同的中断为一组,比如MC9SX128.h中 这些中断的位7到位3都为D,他们就被分成了一组。0~F正好16个组。

INT_CFADDR就是上面说到的用来设置组别的寄存器: 我们需要设置某个组别的中断时,只要写入最后8位地址就行了,比如设置SCI0的中断优先级,就写入0xD0。 设置好组别之后,我们就要该组中相应的中断进行设置,设置中断的寄存器为 这其实是一组寄存器,一共有8个,每个都代表中断组中的一个中断。对应规则是这样的:中断地址的低四位除以2 比如还是SCI0,低四位是6,除以二就是3,那么我们就需要设置INT_CFDATA3 往INT_CFDATAx中写入0~7就能设置相应的中断优先级了 拿我本次比赛的程序来举个例子:我们的程序中需要3个中断:PIT0,PORTH,SCI0。PIT0定时检测传感器数值,PORTH连接干簧管进行起跑线检测,SCI0接收上位机指令实现急停等功能。因此中断优先级要SCI0>PORTH>PIT0。 我们先要从头文件中找出相应中断的地址: PIT0【7:4】位为7,选择中断组: INT_CFADDR=0x70;

飞思卡尔项目书

飞思卡尔智能车比赛项目 参赛时间:2011.7.16 — 2011.7.20 赛前准备时间:2010.7 ---2011.7 飞思卡尔智能车比赛简介: 为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,受教育部高等教育司委托(教高司函[2005]201号文,附件1),由教育部高等学校自动化专业教学指导分委员会(以下简称自动化分教指委)主办全国大学生智能汽车竞赛。该竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。 该竞赛由竞赛秘书处设计、规范标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。该竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,力求向健康、普及、持续的方向发展。 该竞赛以飞思卡尔半导体公司为协办方,得到了教育部相关领导、飞思卡尔公司领导与各高校师生的高度评价,已发展成全国30个省市自治区近300所高校广泛参与的全国大学生智能汽车竞赛。2008年起被教育部批准列入国家教学质量与教学改革工程资助项目中科技人文竞赛之一(教高函[2007]30号文)。 全国大学生智能汽车竞赛原则上由全国有自动化专业的高等学校(包括港、澳地区的高校)参赛。竞赛首先在各个分赛区进行报名、预赛,各分赛区的优胜队将参加全国总决赛。每届比赛根据参赛队伍和队员情况,分别设立光电组、摄像头组、电磁组、创意组等多个赛题组别。每个学校可以根据竞赛规则选报不同组别的参赛队伍。全国大学生智能汽车竞赛组织运行模式贯彻“政府倡导、专家主办、学生主体、社会参与”的16字方针,充分调动各方面参与的积极性。 全国大学生智能汽车竞赛一般在每年的10月份公布次年竞赛的题目和组织方式,并开始接受报名,次年的3月份进行相关技术培训,7月份进行分赛区竞赛,8月份进行全国总决赛。 飞思卡尔智能车比赛技术要求:

飞思卡尔智能车比赛个人经验总结

先静下心来看几篇技术报告,可以是几个人一起看,边看边讨论,大致了解智能车制作的过程及所要完成的任务。 看完报告之后,对智能车也有了大概的了解,其实总结起来,要完成的任务也很简单,即输入模块——控制——输出。 (1)输入模块:各种传感器(光电,电磁,摄像头),原理不同,但功能都一样,都是用来采集赛道的信息。这里面就包含各种传感器的原理,选用,传感器电路的连接,还有传感器的安装、传感器的抗干扰等等需要大家去解决的问题。 (2)控制模块:传感器得到了我们想要的信息,进行相应的AD转换后,就把它输入到单片机中,单片机负责对信息的处理,如除噪,筛选合适的点等等,然后对不同的赛道信息做出相应的控制,这也是智能车制作过程中最为艰难的过程,要想出一个可行而又高效的算法,确实不是一件容易的事。这里面就涉及到单片机的知识、C语言知识和一定的控制算法,有时为了更直观地动态控制,还得加入串口发送和接收程序等等。 (3)输出模块:好的算法,只有通过实验证明才能算是真正的好算法。经过分析控制,单片机做出了相应的判断,就得把控制信号输出给电机(控制速度)和舵机(控制方向),所以就得对电机和舵机模块进行学习和掌握,还有实现精确有效地控制,又得加入闭环控制,PID算法。 明确了任务后,也有了较为清晰的控制思路,接下来就着手弄懂每一个模块。虽然看似简单,但实现起来非常得不容易,这里面要求掌握电路的知识,基本的机械硬件结构知识和单片机、编程等计算机知识。最最困难的是,在做的过程中会遇到很多想得到以及想不到的事情发生,一定得细心地发现问题,并想办法解决这些问题。 兴趣是首要的,除此之外,一定要花充足的时间和精力在上面,毕竟,有付出就会有收获,最后要明确分工和规划好进度。

飞思卡尔寄存器整理

S12的输入/输入端口(I/O口) I/O端口功能 可设置为通用I/O口、驱动、内部上拉/下拉、中断输入等功能。 设置I/O口工作方式的寄存器有: DDR、IO、RDR、PE、IE和PS。 DDR:设定I/O口的数据方向。 IO :设定输出电平的高低。 RDR:选择I/O口的驱动能力。 PE:选择上拉/下拉。 IE:允许或禁止端口中断。 PS:1、中断允许位置位时,选择上升沿/下降沿触发中断;2、中断禁止时且PE有效时,用于选择上拉还是下拉。 I/O端口设置 1、A口、B口、E口寄存器 (1)数据方向寄存器DDRA、DDRB、DDRE DDRA、DDRB、DDRE均为8位寄存器,复位后其值均为0。 当DDRA=0、 DDRB=0、 DDRE=0 时A口、B口和E口均为输入口。 否则,A口、B口、E口为输出口。当DDRA、DDRB、DDRE的任何一位置1时,则该位对应的引脚被设置为输出。 例如,将A口设置为输出口,则其C语言程序的语句为:DDRA=0xff; (2)A口、B口、E口上拉控制寄存器PUCR PUCR为8位寄存器,复位后的值为0。当PUPAE、PUPBE、PUPEE被设置为1时,A口、B口、E口具有内部上拉功能;为0时,上拉无效。当A口、B 口、E口为地址/数据总线时,PUPAE和PUPBE无效。 (3)A口、B口、E口降功率驱动控制寄存器RDRIV RDRIV为8位寄存器,复位后的值为0,此时,A口、B口、E口驱动保持全功率;当RDPA、RDPB、RDPE为1时, A口、B口、E口输出引脚的驱动功率下降 (4)数据寄存器PORTA、PORTB、PORTE PORTA、PORTB、PORTE均为8位寄存器,复位后的值为0,端口引脚输出低电平;要使引脚输出高电平,相应端口对应位应该置1。 由于PE0是/XIRQ、PE1是IRQ,因此,PE0和PE1只能设置为输入。

飞思卡尔智能车竞赛策略和比赛方案综述

飞思卡尔智能车竞赛策略和比赛方案综述 一、竞赛简介 起源: “飞思卡尔杯”智能车大赛起源于韩国,是韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCSl2单片机为核心的大学生课外科技竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能车,在专门设计的跑道上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用。 全国大学生“飞思卡尔”杯智能汽车竞赛是在规定的模型汽车平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、电机驱动电路以及编写相应软件,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。因而该竞赛是涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的比赛。 该竞赛以飞思卡尔半导体公司为协办方,自2006年首届举办以来,成功举办了五届,得到了教育部吴启迪副部长、张尧学司长及理工处领导、飞思卡尔公司领导与各高校师生的高度评价,已发展成全国30个省市自治区200余所高校广泛参与的全国大学生智能汽车竞赛。2008年第三届被教育部批准列入国家教学质量与教学改革工程资助项目中9个科技人文竞赛之一(教高函[2007]30号文,附件2),2009年第四届被邀申请列入国家教学质量与教学改革工程资助项目。 分赛区、决赛区比赛规则 在分赛区、决赛区进行现场比赛规则相同,都分为初赛与决赛两个阶段。在计算比赛成绩时,分赛区只是通过比赛单圈最短时间进行评比。决赛区比赛时,还需结合技术报告分数综合评定。 1.初赛与决赛规则 1)初赛规则 比赛场中有两个相同的赛道。 参赛队通过抽签平均分为两组,并以抽签形式决定组内比赛次序。比赛分为两轮,两组同时在两个赛道上进行比赛,一轮比赛完毕后,两组交换场地,再进行第二轮比赛。在每轮比赛中,每辆赛车在赛道上连续跑两圈,以计时起始线为计时点,以用时短的一圈计单轮成绩;每辆赛车以在两个单轮成绩中的较好成绩为赛车成绩;计时由电子计时器完成并实时在屏幕显示。 从两组比赛队中,选取成绩最好的25支队晋级决赛。技术评判组将对全部晋级的赛车进行现场技术检查,如有违反器材限制规定的(指本规则之第一条)当时取消决赛资格,由后备首名晋级代替;由裁判组申报组委会执委会批准公布决赛名单。 初赛结束后,车模放置在规定区域,由组委会暂时保管。

飞思卡尔智能车程序

Main.c #include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12db128b" #include "define.h" #include "init.h" // variable used in video process volatile unsigned char image_data[ROW_MAX][LINE_MAX] ; // data array of picture unsigned char black_x[ROW_MAX] ; // 0ne-dimensional array unsigned char row ; // x-position of the array unsigned char line ; // y-position of the array unsigned int row_count ; // row counter unsigned char line_sample ; // used to counter in AD unsigned char row_image ; unsigned char line_temp ; // temperary variable used in data transfer unsigned char sample_data[LINE_MAX] ; // used to save one-dimension array got in interruption // variables below are used in speed measure Unsigned char pulse[5] ; // used to save data in PA process Unsigned char counter; // temporary counter in Speed detect Unsigned char cur_speed; // current speed short stand; short data; unsigned char curve ; // valve used to decide straight or turn short Bounds(short data); short FuzzyLogic(short stand); /*----------------------------------------------------------------------------*\ receive_sci \*----------------------------------------------------------------------------*/ unsigned char receive_sci(void) // receive data through sci { unsigned char sci_data; while(SCI0SR1_RDRF!=1); sci_data=SCI0DRL; return sci_data; } /*----------------------------------------------------------------------------*\ transmit_sci \*----------------------------------------------------------------------------*/ void transmit_sci(unsigned char transmit_data) // send data through sci { while(SCI0SR1_TC!=1); while(SCI0SR1_TDRE!=1);

飞思卡尔单片机外设模块寄存器翻译

PIT 模块译: 翻译来自MC9S12X128英文原文PDF.P347-P357 PIT 块结构图: PIT0中断向量66, 1->67, 2->68, 3->69 PIT 相关寄存器详解: 1、 PITCFLMT :寄存器基本控制和基本时钟加载控制寄存器(8位) 1:PIT 使能 PITSWAI: 0:等待模式下仍然工作 1:等待模式下不工作 PITFRZ: 0:冻结模式下仍然工作 1:冻结模式下不工作 PFLMT1: 写1强制加载基本定时计数器1,写0无效,读也总为0 PFLMT0: 同PFLMT1 2、 PITFLT :PIT 计数器强制加载定时器寄存器(8位)

PFLT[3:0]写1相对应的16位计数寄存器会立即载入相对应的16位计数加载寄存器(PITLDn)中的值。 3、PITCE:PIT通道使能存器(8位) PCE[3:0]:如果PITE已经使能,对寄存器PCEn写1后,每输入一个时钟相对应的计数寄存器 开始递减,写0无效。 4、PITMUX:PIT基本时钟通道选择寄存器(8位) PMUX[3:0]:对PMUXn写1,则对应定时器通道选择基本时钟1作为输入,写0则选择基本时 钟0为输入。 5、PITINTE:PIT定时中断使能寄存器(8位) PINTE[3:0]:对PINTEn写1,当相对应的计数寄存器和基本计数寄存器归0时,产生中断请求,否则无效。 6、PITTF:PIT时钟输出标志寄存器(8位)

7、PITMTLD0-1:PIT基本时钟计数器预加载寄存器(8位) 会被加载到基本定时器n,无论什么时刻PFLMTn置“1”会立即更新基本定时器寄存器的值. 8、PITLD0–3:PIT0-3计数器预加载寄存器(16位) PITLD0-3的值用来加载到相对应计数器0-3的寄存器中。当相应通道计数器归零时,或PITFLT寄存器中相应的强制加载位置“1”时,PITLDn中的值将会被立即加载到PITCNTn。 9、PITCNT0–3:PIT0-3计数寄存器(16位) 变计数周期。

飞思卡尔智能车设计报告

飞思卡尔智能车设计报告

目录 1.摘要 (3) 2.关键字 (3) 3.系统整体功能模块 (3) 4.电源模块设计 (4) 5.驱动电路设计 (4) 6.干簧管设计 (5) 7.传感器模块设计 (6) 8.传感器布局 (6) 9.软件设计 (7) 9.1控制算法 (7) 9.2软件系统实现(流程图) (10) 10.总结 (11) 11.参考文献 (12)

1.摘要 “飞思卡尔”杯全国大学生智能汽车竞赛是由教育部高等自动化专业教学指导分委员会主办的一项以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。该竞赛以汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的科技创意性比赛。 本文介绍了飞思卡尔电磁组智能车系统。本智能车系统是以飞思卡尔32 位单片机K60为核心,用电感检测赛道导线激发的电磁信号, AD 采样获得当前传感器在赛道上的位置信息,通过控制舵机来改变车的转向,用增量式PID进行电机控制,用编码器来检测小车的速度,共同完成智能车的控制。 2.关键字 电磁、k60、AD、PID、电机、舵机 3.系统整体功能模块 系统整体功能结构图

4.电源模块设计 电源是一个系统正常工作的基础,电源模块为系统其他各个模块提供所需要的能源保证,因此电源模块的设计至关重要。模型车系统中接受供电的部分包括:传感器模块、单片机模块、电机驱动模块、伺服电机模块等。设计中,除了需要考虑电压范围和电流容量等基本参数外,还要在电源转换效率、噪声、干扰和电路简单等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。 全部硬件电路的电源由7.2V,2A/h的可充电镍镉电池提供。由于电路中的不同电路模块所需要的工作电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压。 电源模块由若干相互独立的稳压电源电路组成。在本系统中,除了电机驱动模块的电源是直接取自电池外,其余各模块的工作电压都需要经电源管理芯片来实现。 由于智能车使用7.2V镍镉电池供电,在小车行进过程中电池电压会有所下降,故使用低压差电源管理芯片LM2940。LM2940是一款低压稳压芯片,能提供5V的固定电压输出。LM2940低压差稳压芯片克服了早期稳压芯片的缺点。与其它的稳压芯片一样,LM2940需要外接一个输出电容来保持输出的稳定性。出于稳定性考虑,需要在稳压输出端和地之间接一个47uF低等效电阻的电容器。 舵机的工作电压是6伏,采用的是LM7806。 K60单片机和5110液晶显示器需要3.3伏供电,采用的是LM1117。 5.驱动电路设计 驱动电路采用英飞凌的BTS7960,通态电阻只有16mΩ,驱动电流可达43A,具有过压、过流、过温保护功能,输入PWM频率可达到25KHz,电源电压5.5V--27.5V。BTS7960是半桥驱动,实际使用中要求电机可以正反转,故使用两片接成全桥驱动。如图下图所示。

相关文档
最新文档