《嵌入式技术入门与实战(基于STM32)》课件 第3章 STM32 IO应用实战_第1页
《嵌入式技术入门与实战(基于STM32)》课件 第3章 STM32 IO应用实战_第2页
《嵌入式技术入门与实战(基于STM32)》课件 第3章 STM32 IO应用实战_第3页
《嵌入式技术入门与实战(基于STM32)》课件 第3章 STM32 IO应用实战_第4页
《嵌入式技术入门与实战(基于STM32)》课件 第3章 STM32 IO应用实战_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

第3章STM32I/O应用实战《嵌入式技术入门与实战(基于STM32)》第3章STM32I/O应用实战0102初识STM32的I/O口任务1GPIO实现跑马灯的控制21、初识STM32的I/O口第3章STM32I/O应用实战PartOneGPIO端口和引脚的概念,GPIO工作模式1、初识STM32的I/O口1.1STM32的I/0口定义1.2GPIO的工作模式和结构41.1STM32的I/0口定义STM32的I/0口,又叫做GPIO(General-PurposeInputs/Outputs),是STM32数字输入输出的基本模块,可以实现STM32与外部环境进行数字交换。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能:借助GPIO,微控制器可以实现对外围设备(如LED和按键等)最简单、最直观的监控。当微控制器没有足够的I/O引脚或片内存储器时,GPIO还可用于串行和并行通信、存储器扩展等。通用I/O端口GPIO51系列单片机有1个8位双向并行I/O端口P0和3个8位准双向并行I/O端口P1~P3。✐51系列单片机的端口和引脚?STM32的GPIO的每个端口组有16个引脚,STM32不同型号的芯片,具有不同的端口组和不同的引脚数量STM32F407微控制器有9组通用I/O端口,端口号用GPIOx(x是A、B、C、D、E、F、G、H、I)表示,即GPIOA、GPIOB、……GPIOI每组端口有16个引脚(0~15),引脚号分别用Px0、Px1、……Px15(x是A~I)表示1.2GPIO的工作模式GPIO端口的每个位(引脚)可以由软件分别配置成多种模式。状态配置模式HAL库代码中宏定义名称通用输出开漏(Push-Pull)GPIO_MODE_OUTPUT_PP推挽式(Open-Drain)GPIO_MODE_OUTPUT_OD复用功能输出开漏(Push-Pull)GPIO_MODE_AF_PP推挽式(Open-Drain)GPIO_MODE_AF_OD输入上拉输入GPIO_MODE_INPUT,GPIO_PULLUP下拉输入GPIO_MODE_INPUT,GPIO_PULLDOWN浮空输入GPIO_MODE_INPUT,GPIO_NOPULL模拟输入GPIO_MODE_ANALOG1.2.2GPIO端口位的基本结构9GPIO不同工作模式下的电压标准非模拟输入模式端口能够读取当前电平的高低,读取电压高低的范围为5V/3.3V~0V。模拟输入模式端口能够读取当前电路的模拟电压值,分辨率为4096(12bit),采集范围为3.3V~0V。采集电压尽可能不要超过3.3V,否则可能会对芯片产生损坏。通用输出模式端口能够输出电平,控制输出口的电压范围为3.3V~0V。 复用模式端口复用到芯片内置的各种功能寄存器上,比如串口发送接收,SPI通信,Can总线等。这些寄存器没有直接的输出口,都是通过复用端口完成它们的功能。2、任务1GPIO实现跑马灯的控制第3章STM32I/O应用实战PartTwo了解应用实例功能,GPIO工作模式的选择,硬件设计2、任务1GPIO实现跑马灯的控制2.1软硬件设计2.2实现与代码分析11122.1软硬件设计基于嵌入式MCU设计并实现一个流水灯系统,具体要求:系统上电后,微控制器控制2个LED灯间隔200ms依次闪烁,并以此循环往复。13GPIO作为输出的应用芯片:STM32F407ZGT6实验板:正点原子探索开发套件实验板已实现了硬件电路,无需重新搭建。14硬件平台条件硬件设计原理图STM32芯片作为输出的引脚:PF9、PF10LED连接硬件电路输出状态下的GPIO内部配置推挽输出模式下:1:P导通,输出高0:N导通,输出低开漏输出模式下,0:N导通,输出低高阻状态:N不导通(P-MOS从不被激活)原理:输出寄存器上的0激活N-MOS,而输出寄存器上的1将激活P-MOS。推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。用途:可以输出高、低电平,连接数字器件;特点:推拉式输出级既提高电路的负载能力,又提高开关速度。17推挽输出原理输出寄存器上的0激活N-MOS,输出低电平,输出寄存器上的1将端口置于高阻状态用途适合做电流型的驱动特点:

利用外部电路的驱动能力,减少IC内部的驱动一般来说,开漏是用来连接不同电平的器件,匹配电平用的因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平,比如输出5V开漏输出功能:基于嵌入式MCU设计并实现一个流水灯系统。LED灯驱动需要输出高低电平,GPIO引脚的模式选择推挽输出模式GPIO作为输出的应用-模式选择思考与练习◎简述GPIO有哪几种工作模式。◎分析推挽输出和开漏输出的区别。212.2实现与代码分析掌握详细实现过程,分析具体实现代码第一步使用STM32CubeIDE新建工程第二步

使用STM32CubeMX完成时钟配置第三步使用STM32CubeMX完成GPIO端口引脚初始化配置第四步导出工程第五步LED流水灯功能代码编写第六步下载调试2.2.1实现过程2.2.2代码分析1)程序框架设计的程序可以采用“只执行一次初始化函数,重复执行功能函数”这种框架,如下所示:int

main(void)

{

//init()

while(1)

{

//test()

}

}

231)程序框架2)HAL库函数HAL库是ST推出的官方的固件库,它将这些寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用,降低开发难度。用户在开发过程中不需要详细掌握寄存器的配置方法,只要知道调用哪些固件库函数即可,只要掌握了固件库开发思想,就大大降低了初学者入门的难度。寄存器标准库HAL库2)引脚控制的HAL库函数1、HAL_GPIO_Init功能:GPIO初始化,每个引脚可独立配置,也可同时传入多个引脚进行配置,包括GPIO工作模式、响应速度等相关寄存器的配置。无返回值。函数原型voidHAL_GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_Init)26GPIO_InitTypeDef结构体内容解析27成员含义配置选项Pin引脚号GPIO_PIN_0~GPIO_PIN_15(使用符号“|”进行或运算便可以合并)GPIO_PIN_All(一次初始化全部16个端口)Mode工作模式GPIO_MODE_INPUT(输入,需进一步配置)GPIO_MODE_OUTPUT_PP(推挽输出)GPIO_MODE_OUTPUT_OD(开漏输出)GPIO_MODE_AF_PP(复用推挽)GPIO_MODE_AF_OD(复用开漏)GPIO_MODE_ANALOG(模拟输入)Pull上下拉电阻的选择配置GPIO_NOPULL(无上下拉的浮空输入)GPIO_PULLUP(上拉输入)GPIO_PULLDOWN(下拉输入)SpeedI/O口驱动电路的响应速度,输出模式下有效GPIO_SPEED_FREQ_LOW(2MHz)GPIO_SPEED_FREQ_MEDIUM(25MHz)GPIO_SPEED_FREQ_HIGH(50MHz)GPIO_SPEED_FREQ_VERY_HIGH(100MHz)本任务中,配置PF9、PF10为推挽输出,无上下拉,速度2MHz2)引脚控制的HAL库函数2、HAL_GPIO_ReadPin功能:从输入数据寄存器(IDR)中读取引脚状态值,0或1,返回引脚状态值“0”或“1”。函数原型:GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)282)引脚控制的HAL库函数3、HAL_GPIO_WritePin功能:向输出数据寄存器(ODR)中写入输出状态(0或1),无返回值函数原型:voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState)4、HAL_GPIO_TogglePin293)GPIO初始化的代码实现GPIO的初始化在STM32CubeMx中完成配置,会自动转化成初始化代码30开启外设时钟31

__HAL_RCC_GPIOF_CLK_ENABLE();4)流水灯功能的实现在while(1)中无限循环执行以下LED0/1交替亮灭,实现跑马灯效果。32思考与练习◎对于应用案例,修改跑马灯功能为全亮和全灭,调用HAL_GPIO_TogglePin函数实现3、GPIO的寄存器描述GPIO寄存器实现对GPIO端口初始化配置和数据输入输出控制每个寄存器只能以32位(字)进行访问,不允许16位(半字)或8位(字节)访问*GPIO配置寄存器GPIO端口模式寄存器GPIOx_MODERGPIO端口输出类型寄存器GPIOx_OTYPERGPIO端口输出速度寄存器GPIOx_OSPEEDRGPIO端口上拉/下拉寄存器GPIOx_PUPDR数据寄存器GPIO端口输入数据寄存器GPIOx_IDRGPIO端口输出数据寄存器GPIOx_ODR置位/复位寄存器GPIOx_BSRR锁定寄存器GPIOx_LCKR复用功能选择寄存器GPIO复用功能高位寄存器GPIOx_AFRHGPIO复用功能低位寄存器GPIOx_AFRLGPIO端口模式寄存器GPIOx_MODER36GPIO端口输出类型寄存器GPIOx_OTYPER37GPIO端口输出速度寄存器GPIOx_OSPEEDR38GPIO端口上拉/下拉寄存器GPIOx_PUPDR3940端口输入数据寄存器(GPIOx_IDR)GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin){GPIO_PinStatebitstatus;/*Checktheparameters*/assert_param(IS_GPIO_PIN(GPIO_Pin));if((GPIOx->IDR&GPIO_Pin)!=(uint32_t)GPIO_PIN_RESET){bitstatus=GPIO_PIN_SET;}else{bitstatus=GPIO_PIN_RESET;}returnbitstatus;}41端口输出数据寄存器(GPIOx_ODR)42端口位设置/复位寄存器(GPIOx_BSRR)voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState){/*Checktheparameters*/assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState));if(PinState!=GPIO_PIN_RESET){

GPIOx->BSRR=GPIO_Pin;}else{

GPIOx->BSRR=(uint32_t)GPIO_Pin<<16u;}}通用I/O(GPIO)说明事项复位期间和刚复位后:复用功能未开启,I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,MODEx[1:0]=00b)。当作为输出配置时:写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式使用输出驱动器。输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活,也可以不被激活所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。单击此处添加副标题内容谢谢聆听44第3章STM32I/O应用实战《嵌入式技术入门与实战(基于STM32)》3、STM32系列微控制器3.1STM32内部结构3.2STM32时钟系统3.3STM32最小系统463.1STM32F407内部功能结构图473.2STM32时钟系统在嵌入式系统开发设计中,芯片内部的时钟系统是开发者必须要熟练掌握的内核和任何片上外设都需要时钟的驱动,在开发设计中需要清晰的了解时钟系统的配置方法。STM32的时钟系统为了适应不同的频率需求,需要支持多种频率,其时钟系统比51单片机要复杂很多。48STM32F4的时钟树结构STM32有5个时钟源:HSI、HSE、LSI、LSE、PLL49STM32F4的时钟源HSIHSI是高速内部时钟,由内部16MHzRC振荡器生成可直接用作系统时钟,或者用作为PLL的输入。优点是成本较低(无需使用外部组件),启动速度比HSE晶振快其精度不及外部晶振或陶瓷谐振器。HSEHSE是高速外部时钟可接外部晶振/陶瓷谐振器,也可接外部用户时钟源可直接用作系统时钟,或者用作为PLL的输入。频率范围为4MHz~26MHz精度非常高。50STM32F4的时钟源LSILSI是低速内部时钟,RC振荡器可作为低功耗时钟源在停机和待机模式下保持运行,供独立看门狗(IWDG)和自动唤醒单元(AWU)使用。可作为实时时钟外设(RTC)的时钟源。时钟频率在32kHz左右。LSELSE是低速外部时钟,接频率为32.768kHz的晶振或陶瓷谐振器可作为实时时钟外设(RTC)的时钟源来提供时钟/日历或其它定时功能具有功耗低且精度高的优点。51STM32F4的时钟源PLLPLL为锁相环倍频输出,STM32F4具有两个PLL:主PLL和专用PLL。主PLL(MainPLL)由HSE或HSI振荡器提供时钟信号,并具有两个不同的输出时钟:第一个用于生成高速系统时钟(最高达168MHz),第二个用于生成USBOTGFS的时钟(48MHz)、随机数发生器的时钟(48MHz)和SDIO时钟(48MHz)。专用PLL(PLLI2S)用于生成精确时钟,从而在I2S接口实现高品质音频性能。52STM32F4系统时钟(SYSCLK)的选择系统时钟SYSCLK是提供STM32中绝大部分部件工作的时钟源,可来源于三个时钟源:HSI、HSE、PLL在系统复位后,默认系统时钟为HSI。STM32F407的SYSCLK时钟最大168MHz53STM32F4的时钟输出STM32共有两个微控制器时钟输出(MCO)引脚,可以选择一个时钟信号输出到MCO引脚上:MCO1引脚(PA8),可选择时钟源:HSI、LSE、HSE、PLL

MCO2引脚(PC9),可选择时钟源:HSE、PLL、系统时钟、PLLI2SCLK54STM32F4的总线时钟以太网PTP时钟是使用系统时钟AHB时钟经过SYSCLK时钟分频得来,最大频率为168MHzAPB2高速时钟、APB1低速时钟经过AHB时钟分频得来,最大频率分别为168MHz、84MHz553.3STM32最小系统最小系统是指仅包含必需的元器件,仅可运行最基本软件的简化系统,也就是用最少的元件组成,但可以工作的系统。无论多么复杂的嵌入式系统,都可以认为是由最小系统和扩展功能组成。最小系统是嵌入式系统硬件设计中复用率最高,也是最基本的功能单元。典型的最小系统包括:STM32微控制器芯片、电源、调试接口、复位电路、时钟、存储系统(可选)。56电源电路STM32F4微控制器使用单电源供电,工作电压VDD要求介于1.8V到3.6V之间。同时通过内部的一个嵌入式线性调压器,可以给Cortex-M4内核提供1.2V的工作电压。通常正常电源为5V,可以采用转换电路转为3.3v后给芯片供电STM32F4芯片的电源引脚可连接电容以增强稳定性57调试接口STM32的CoreSight调试系统支持JTAG

和SWD两种接口标准,这两种接口都要使用GPIO(普通I/O口)来供给调试仿真器使用。JTAG调试接口(JTAG-DP)提供5针标准JTAG接口串行调试接口(SW-DP)提供2针(时钟+数据)接口58复位电路复位电路的主要作用是把特殊功能寄存器的数据刷新为默认数据。复位场景:单片机在运算过程中由于干扰等外界原因造成寄存器中数据混乱不能使其正常继续执行程序(称死机)或产生的结果不正确时均需要复位,以使程序重新开始运行。单片机在刚上电时也需要复位电路,系统上电时复位电路

提供复位信号,直至电源稳定后,撤销复位信号,以使单

片机能够正常稳定的工作。59时钟系统一般在最小系统设计时,我们会考虑选用外部时钟源,以获得更高的时钟精度HSE外接晶振电路,晶振8MHz

LSE外接晶振电路,晶振32.768KHz60思考与练习STM32F4有哪些时钟源信号?时钟频率分别是多少?STM32F4的系统时钟的时钟源有哪些?STM32最小系统包含哪些部分?请说明STM32F4的供电要求?STM32系统复位有哪些场景?STM32的时钟源一般如何选择?61单击此处添加副标题内容谢谢聆听62第3章STM32I/O应用实战《嵌入式技术入门与实战(基于STM32)》3、任务2按键点灯的控制与实现第3章STM32I/O应用实战PartThree3、任务2按键点灯的控制与实现3.1GPIO输入工作模式3.2GPIO作为输入的应用设计3.3实现与代码分析653.4GPIO的寄存器描述3.1、GPIO输入工作模式1、GPIO输入工作模式模拟输入1浮空输入2上拉输入3下拉输入4输入模式上拉、下拉和浮空输入的内部配置输出缓冲器被禁止,施密特触发器输入被激活上拉电阻开关闭合接VDD,下拉电阻开关打开在引脚没有外部输入时,引脚被上拉至高电平,且保持高电平状态69上拉输入开关闭合下拉电阻开关闭合接GND,上拉电阻开关打开在引脚没有外部输入时,引脚被下拉至低电平,且保持低电平状态70下拉输入开关闭合输入引脚即不接高电平,也不接低电平。由外部输入决定引脚的状态。71浮空输入开关都打开关闭施密特触发器,上拉和下拉电阻被禁止。72模拟输入3.2、GPIO作为输入的应用设计设计并实现一个按键控制LED灯系统,具体要求:系统上电后,按下4个按键KEY0、KEY1、KEY2、WK_UP分别控制翻转LED1与LED2的亮灭状态74GPIO作为输入的应用芯片:STM32F407ZGT6实验板:正点原子探索开发套件实验板已实现了硬件电路,无需重新搭建。75硬件平台条件按下按键时导通A端与B端;松开按键保持电路开路状态76按键原理在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间一般为5ms~10ms。硬件消抖:在按键上并联一个电容,利用电容的充放电特性来对抖动过程中产生的电压毛刺进行平滑处理。软件消抖:使用程序完成消抖任务。77按键消抖硬件设计原理图KEY0→PE4,KEY1→PE3,KEY2→PE2、WK_UP→PA0按键连接硬件电路功能:基于嵌入式MCU设计并实现一个按键控制LED灯系统。KEY0→PE4:上拉输入模式KEY1→PE3:上拉输入模式KEY2→PE2:上拉输入模式WK_UP→PA0:下拉输入模式GPIO作为输出的应用-模式选择思考与练习◎简述GPIO有哪几种输入工作模式。◎分析上拉、下拉和浮空输入的区别。3.3、实现与代码分析掌握详细实现过程,分析具体实现代码3.3.1

实现过程第一步使用STM32CubeMX完成GPIO引脚初始化配置和工程代码的生成第二步按键扫描和按键点灯代码添加第三步下载调试3.3.2代码分析1)GPIO引脚初始化代码2)按键扫描代码3)按键点灯代码83GPIO引脚初始化代码84按键扫描思路按键扫描代码864、GPIO的寄存器描述GPIO寄存器GPIO寄存器实现对GPIO端口初始化配置和数据输入输出控制每个寄存器只能以32位(字)进行访问STM3F40x芯片系列的GPIO寄存器:GPIO配置寄存器GPIO端口模式寄存器GPIOx_MODERGPIO端口输出类型寄存器GPIOx_OTYPERGPIO端口输出速度寄存器GPIOx_OSPEEDRGPIO端口上拉/下拉寄存器GPIOx_PUPDR数据寄存器GPIO端口输入数据寄存器GPIOx_IDRGPIO端口输出数据寄存器GPIOx_ODR置位/复位寄存器GPIO端口置位/复位寄存器GPIOx_BSRR锁定寄存器GPIO端口配置锁定寄存器GPIOx_LCKR复用功能选择寄存器GPIO复用功能高位寄存器GPIOx_AFRHGPIO复用功能低位寄存器GPIOx_AFRL89GPIO端口模式寄存器GPIOx_MODER每个引脚2bit:MODEy[1:0]32bit可配置16个引脚,即1个端口PA0输入模式的配置:GPIOA_MODER,MODER0[1:0]=00GPIO端口输出类型寄存器GPIOx_OTYPER90每个引脚仅用1bit表示引脚输出类型:OTy[0],1个端口仅占用低16位,高16位保留PE5推挽输出:在GPIOE_MODER中,MODER5[1:0]=01,在GPIOE_OTYPER中,OT5=0GPIO端口输出速度寄存器GPIOx_OSPEEDR91每个引脚2bit:OSPEEDRy[1:0]32bit可配置16个引脚,即1个端口GPIO端口上拉/下拉寄存器GPIOx_PUPDR92每个引脚2bit:PUPDRy[1:0],32bit可配置16个引脚,即1个端口PE3上拉输入模式:在GPIOE_MODER中,MODER3[1:0]=00,在GPIOE_PUPDR中,PUPDR3[1:0]=01端口输入数据寄存器(GPIOx_IDR)93GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin){GPIO_PinStatebitstatus;/*Checktheparameters*/assert_param(IS_GPIO_PIN(GPIO_Pin));if((GPIOx->IDR&GPIO_Pin)!=(uint32_t)GPIO_PIN_RESET){bitstatus=GPIO_PIN_SET;}else{bitstatus=GPIO_PIN_RESET;}returnbitstatus;}每个引脚仅需1bit表示状态“0”或“1”1个端口仅占用低16位,高16位保留:IDRy[15:0]94端口输出数据寄存器(GPIOx_ODR)每个引脚仅需1bit表示状态“0”或“1”1个端口仅占用低16位,高16位保留:ODRy[15:0]95端口位设置/复位寄存器(GPIOx_BSRR)voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState){/*Checktheparameters*/assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState));if(PinState!=GPIO_PIN_RESET){

GPIOx->BSRR=GPIO_Pin;}else{

GPIOx->BSRR=(uint32_t)GPIO_Pin<<16u;}}每个引脚置位和复位各1bit,低16位为置位,高16位为复位1思考与练习◎如果通过寄存器配置PB4引脚的工作模式,请问如何配置?◎请分析HAL库函数:HAL_GPIO_ReadPin、HAL_GPIO_WritePin、HAL_GPIO_TogglePin的代码,对引脚的读写分别配置了哪些寄存器?单击此处添加副标题内容谢谢聆听97《嵌入式技术与应用》

STM32的GPIO模块-位操作

第3章STM32I/O应用实战《嵌入式技术入门与实战(基于STM32)》任务3STM32I/O的位带操作实现01STM32存储器的映射02位带操作原理03位带操作的应用分析1、STM32存储器的映射STM32存储器的映射

4GB地址空间内可寻址的存储空间分为8个主要块,每个块为512MB。嵌入式SRAM包括:192KB系统SRAM、4KB备份SRAM系统SRAM:起始地址是0x20000000,分为三块:映射在地址0x20000000的112KB和16KB块,供所有AHB主控总线访问。外设存储器映射外设存储器映射起始地址是0x40000000通过总线AHB、APB连接外设2、位带操作原理GPIO输出数据寄存器写一位值控制其对应的引脚状态,普通的操作过程中需要3步骤:

1.

读:读取包含该位的字节数据

2.修改

温馨提示

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

最新文档

评论

0/150

提交评论